jQuery UI datepicker-очистка поля altField при очистке основного поля

У меня есть форма с меню выбора даты. Datepicker имеет пользовательский D/m / Y форматированный вход datepicker и скрытое поле altField для использования с БД.

если пользователь очищает текст в поле ввода, он также не очищает поле altField.

Я использую ниже JS, чтобы обойти эту проблему. Есть ли более правильный способ сделать это или это вполне приемлемо?

$("#datePicker").change(function(){
    if ($(this).val().length < 1){
        $("#dateAltField").val('');
    }
});

3 ответов


то, что у вас есть, работает отлично и является допустимым подходом, альтернативно немного короче:

$("#datePicker").change(function(){
  if (!$(this).val()) $("#dateAltField").val('');
});

по этому ошибка билета это не ошибка, это функция.

Я использую это как обходной путь:

var $input = $('#myInput');
$input.dateinput();

// This is the main part:
$input.on('change', function(){
    if (!$input.val()) $input.data('datepicker').settings['altField'].val('');
});

обобщение решения г-на Лониского и исправление небольшого недостатка:

$("body").on("change",".hasDatepicker",function(e) {
   if ( !$(this).val() ) {
      $( $(this).data("datepicker").settings["altField"] ).val("");
   }
});