Jquery UI datepicker onselect吞咽变化事件

时间:2014-05-28 01:03:14

标签: jquery jquery-ui jquery-ui-datepicker

check out this fiddle with opened console

JS

   jQuery(function() {
  jQuery('#test1').datepicker();

   jQuery('#test2').datepicker({
      onSelect: function ()
                {
                   this.focus();

                }
   });


  jQuery("input").bind("change", function(){
    console.error("change detected");
  });


  });

HTML

 <input type="text" id="test1"></input>
 <input type="text" id="test2"></input>

test2不会触发更改事件。有没有一个干净的解决方案,没有我必须检查自己的价值是否已经改变?

我基本上想要做的选择是再次关注日期选择器。目前实施只是模糊焦点,用户无法选择到下一个字段。

编辑这只是我需要onSelect的原因。我仍然需要onchange事件来做其他事情(检查用户输入,发送ajax请求)

2 个答案:

答案 0 :(得分:1)

您似乎必须手动触发更改事件。

jQuery(function() {
  jQuery('#test1').datepicker();

   jQuery('#test2').datepicker({
      onSelect: function ()
                {
                  //Do all your stuffs here
                  //Then add this line to trigger the change event manually.
                  $(this).change();
                }
   });


  jQuery("input").bind("change", function(){
    console.error("change detected");
  });


  });

Demo

答案 1 :(得分:0)

您可以对输入进行分类,以便更轻松地添加datepicker,但请注意,可以通过多种方式完成此操作。这是一个类的例子:

<input type="text" id="test1" class="datepicker" />
<input type="text" id="test2" class="datepicker" />

和jquery:

jQuery(function() {

    jQuery(".datepicker").datepicker({
      onSelect: function (selectedDate, ele)
            {
              console.error(selectedDate);
              console.error(ele.id);
              this.focus();
            }
   });

});

jsbin fiddle