.change()没有触发.on()jquery

时间:2014-04-04 06:44:54

标签: jquery datepicker onchange

我需要手动调用.change()来执行某些操作,并为其他on()控件编写了一个。input来实现此功能。但是对于DatePicker列,我需要手动触发它,因为只要日期设置为文本框,它就不会触发。

$('input.JDateCtrl').datepicker({        
        onSelect: function (dateText) {
        debugger;
        //$(this).parent().find('input[type=text]').val(dateText);
        $(this).parent().find('input[type=text]').attr('value', dateText);
        var ctrlID = $(this).parent().find('input[type=text]').attr('id');
        $('#' + ctrlID).trigger('change');
       // $('#' + ctrlID).change(); // Tried it too
    }
 });

.on()如下所示。

  $jQuery(document).on('change', '.JAsyncUpdateTxt', function () {
       // Some Operations being performed in this block
   });

但是每当我触发.on()事件时,change都没有触发。

P.S :它已经包含在$jQuery(document).ready();

3 个答案:

答案 0 :(得分:6)

$(document).on('change', '.JAsyncUpdateTxt', function () {
       // Some Operations being performed in this block
   });

删除' jQuery' 。使用任何一个。

答案 1 :(得分:1)

请先将你的.on()放入.datepicker,如下所示: -

$(document).on('change', '.JAsyncUpdateTxt', function () {
   // Some Operations being performed in this block
});


$('input.JDateCtrl').datepicker({        
    onSelect: function (dateText) {
    debugger;
    //$(this).parent().find('input[type=text]').val(dateText);
    $(this).parent().find('input[type=text]').attr('value', dateText);
    var ctrlID = $(this).parent().find('input[type=text]').attr('id');
    $('#' + ctrlID).trigger('change');
   // $('#' + ctrlID).change(); // Tried it too
}
});

我认为这可以帮助你。

答案 2 :(得分:0)

  $(document).on('change', '.JAsyncUpdateTxt', function () {
       // Some Operations being performed in this block
   });

删除jquery使用jquery或$