【问题标题】:JQuery on-change events not calling [duplicate]JQuery on-change事件不调用[重复]
【发布时间】:2018-10-11 01:28:12
【问题描述】:

我有一个 ID 为 #tDate 的输入框。我使用 jquery 更新字段中的值,但该字段的更改事件不起作用。如果我手动更新字段中的值,on change 事件可以正常工作。

下面是我的代码

$("#tDate").val("2018/04/30");

//Then I have this on change event
$("#tDate").on("change", function (e, args){
    alert('value changed');
});

即使使用 JQuery 更改了输入框的值,我也希望 on change 事件起作用。

谢谢。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您必须在设置值后触发change 事件

    $("#tDate").val("2018/04/30");
    $('#tDate').trigger('change');
    

    或者一行

    $("#tDate").val("2018/04/30").trigger('change');

    这应该会触发您的更改事件处理程序。

    【讨论】:

    • 哇,谢谢@Gorge Bailey。工作得更好
    【解决方案2】:

    JS:

    $("#tDate").val("2018-04-30");
    
    $('#some-field').on("change", function (e, args){
      $("#tDate").val("2018-05-01");
      alert('value changed');
    });
    

    HTML

    <input type="text" id="some-field" />
    <input type="date" id="tDate" />
    

    https://codepen.io/mdlanglais/pen/XqMzQQ

    用斜线格式化日期对我不起作用,破折号可以做的就是有价值。如果这对您来说不是问题,那么这不是问题!在任何情况下,日期字段都是通过带有 onchange 的 jQuery 更新的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2021-05-31
      • 1970-01-01
      • 2013-05-26
      • 2016-08-20
      • 1970-01-01
      相关资源
      最近更新 更多