У меня есть php-массив строк даты и собственное поле ввода даты html5. У меня есть выход дата массив объекта JSON, чтобы разрешить использование с JavaScript:Проверьте, существует ли дата в объекте JSON
<script>
var date_array = <?php echo json_encode($aDates); ?>;
...
Это дает выход примерно так:
var date_array = {
"2013-12-05": "2013-12-05",
"2013-12-04": "2013-12-04",
"2013-12-03": "2013-12-03"
...
};
Я использую родной дата поле ввода html5 и я хочу чтобы проверить, что значение, которое пользователь выбрал, существует в объекте json. Похоже, что в (моей версии) хром формат строки даты на входе dd/mm/yyyy
, поэтому я предполагаю, что потребуется синтаксический анализ даты.
Вот то, что я до сих пор:
var date_input = $('input#end_date');
date_input.change(function(){
if(jQuery.inArray(date_input.val(), date_array) > -1){
date_input.parent().addClass('has-success');
date_input.parent().removeClass('has-error');
} else {
date_input.parent().addClass('has-error');
date_input.parent().removeClass('has-success');
}
});
Что не работает должным образом. Любые идеи по улучшению?
Значения в 'date_array' не даты. Это все струны. Поэтому вам нужно убедиться, что 'date_input.val()' находится в том же формате, что и ваши строки – CodingIntrigue
date_array не является массивом. используйте 'date_array = [" 2013-12-05 "," 2013-12-04 "," 2013-12-03 "]' вместо – guy777