2016-02-05 2 views
2

Я думаю, что это простой вопрос. Я использую простую схему, и я хочу иметь minDate и maxDate. Документация говорит об этом в разделе проверки, но я не уверен, как определить его в самой схеме. Любая помощь будет большой. БлагодаряПростая схема minDate maxDate

Путь: Schema.js

startDate: { 
     type: Date, 
     optional: true, 
     autoform: { 
      type: "bootstrap-datepicker" 
      } 
    }, 
    endDate: { 
     type: Date, 
     optional: true, 
     autoform: { 
      type: "bootstrap-datepicker" 
      } 
    } 

ответ

3

Я нашел проблему в simple-schema repo, который идет по этому поводу. Вот как ваш код может выглядеть со статическим даты мин/макс:

startDate: { 
    type: Date, 
    optional: true, 
    min: new Date(2016, 1, 1), 
    autoform: { 
     type: "bootstrap-datepicker" 
    } 
}, 
endDate: { 
    type: Date, 
    optional: true, 
    max: new Date(2018, 1, 1), 
    autoform: { 
     type: "bootstrap-datepicker" 
    } 
} 

Вы можете использовать custom валидатор, если вы хотите, чтобы эти даты динамичными. Вот a link в соответствующей документации. Дата начала будет выглядеть примерно так:

startDate: { 
    type: Date, 
    optional: true, 
    custom: function() { 
     var myMinDate = new Date(); //today 
     if(myMinDate > this.value) { 
      return 'minDate'; //Error string according to the docs. 
     } else { 
      return true; 
     } 
    }, 
    autoform: { 
     type: "bootstrap-datepicker" 
    } 
}, 
endDate: { 
    type: Date, 
    optional: true, 
    custom: function() { 
     var myMaxDate = new Date(2018, 11, 31); //Last day of 2018 
     if(myMaxDate < this.value) { 
      return 'maxDate'; //Error string according to the docs. 
     } else { 
      return true; 
     } 
    }, 
    autoform: { 
     type: "bootstrap-datepicker" 
    } 
} 
+0

Thanks @Stephen. Как ссылаться на endDate в пользовательской функции? – bp123

+0

См. Мой отредактированный пост, добавленный пример. –

+0

Извините. Я имел в виду, как я могу ссылаться на endDate, который добавляет пользователь. Как в if (startDate> endDate) { return 'minDate'; // Ошибка в соответствии с документами. } else { return true; } – bp123

Смежные вопросы