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

时间:2015-03-06 15:43:42

标签: jquery events

我尝试在用户修复空字段时删除表单上的警报。 我的通用代码适用于用户必须在字段中键入的所有输入元素,但是我的输入具有弹出日历不会触发"更改"如果日期由系统放置在字段中,则为event。我认为当场地失去焦点时会发生变化事件?

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

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

4 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:3)

使用类似的方法,它总是有效的。

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

答案 2 :(得分:1)

您可能在页面上加载元素之前附加事件。也许尝试这样做,以便在附加事件之前完成页面加载

$(function() {

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

答案 3 :(得分:0)

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

它与 bind 略有不同,您可以将它放在一个函数中,以便为按需创建的新对象重新运行(因此,它不一定要在“准备好“声明”。