JQuery将datepicker事件应用于其他输入更改

时间:2017-09-15 13:24:27

标签: javascript jquery jquery-ui-datepicker

我试图在各种输入类型的变更事件上“堆叠”几个,它们到目前为止一直工作,直到我尝试在“输入”类型的输入上应用相同但是jquery datepickers:

   <div class="col-md-5">
          <input type="input" name="start_date" id="start_date" class="start_date" placeholder="Data (início)" />
   </div>
   <div class="col-md-5">
          <input type="input" name="end_date" id="end_date" class="end_date" placeholder="Data (fim)" />
   </div>

问题是当我更改日期时,不会触发更改事件:

            var $filterCheckboxes = $('input[type="checkbox"]');
            var $numbers = $('input[type="number"]');
            var $inputs = $('input[type="inputs"]');

            $filterCheckboxes.add($orderBy).add($inputs).add($numbers).on('change', function() {

如何在chaange或onselect事件上添加datepicker到堆栈?

1 个答案:

答案 0 :(得分:0)

  • 在onchange函数的末尾尝试refreshing datepicker。

在这种情况下,我建议你识别带有附加类或其他东西的日期选择器的输入......在这个例子中,我假设你的日期选择器输入有一个名为&#34; datepickered&#34;的类。

var $filterCheckboxes = $('input[type="checkbox"]');
var $numbers = $('input[type="number"]');
var $inputs = $('input[type="inputs"]');

$filterCheckboxes.add($orderBy).add($inputs).add($numbers).on('change', function() {
    // [...] Whaterver the function do
    if($(this).hasClass('datepickered')) {
        $(this).datepicker('refresh');
    }
});

我更喜欢这个:只是阻止你的事件被添加到带有datepicker的输入中,然后像这样使用你的函数

var $filterCheckboxes = $('input[type="checkbox"]');
var $numbers = $('input[type="number"]');
var $inputs = $('input[type="inputs"]');
var onChange = function() { /* [...] Whaterver the function do */ };

$filterCheckboxes.add($orderBy).add($inputs).add($numbers).not('.datepickered').on('change', onChange);

$('.datepickered').datepicker({ onSelect: onChange });

N.B。我没有测试此代码的任何部分