jQuery 更改事件未针对输入字段触发

jQuery change event not firing for input field

我试图在用户修复空白字段时删除表单上的警告。 我的通用代码适用于用户必须在字段中键入的所有输入元素,但如果系统将日期放置在字段中,我的具有弹出日历的输入不会触发 "change" 事件。我以为当字段失去焦点时会触发 change 事件?

        $("#my_input").change(function() {
            $(".StatusBox").html("");
            $(this).unbind("change");
        });

我有另一段代码在此之后运行并更改输入字段(用户单击日历日期并因此更新输入)。那不应该触发更改事件吗?

您是否尝试过使用 $("#my_input").on('change', function ... ?

它的工作方式与 bind 略有不同,您可以将它放在一个函数中,以便为按需创建的新对象重新 运行(因此,它不会' 不一定要在 "ready" 语句内)。

您可能在元素加载到页面之前附加了事件。也许尝试这样做让页面在附加事件之前完成加载

$(function() {

    $("#my_input").change(function() {
             $(".StatusBox").html("");
             $(this).unbind("change");
     });
});

您可以通过 trigger('change') 方法以编程方式强制更改事件:

$('#elementID').trigger('change');

当然,这假定 $('#elementID') (仍然) 绑定到更改事件...

用这样的东西,总是有效的。

$(function() {
    $("#my_input").on("change paste keyup", function() {
       alert($(this).val()); 
    });
});