【发布时间】:2015-03-06 15:43:42
【问题描述】:
当用户修复空字段时,我正在尝试删除表单上的警报。 我的通用代码适用于用户必须在字段中键入的所有输入元素,但是如果系统将日期放置在字段中,我的具有弹出日历的输入不会触发“更改”事件。我认为当字段失去焦点时会触发 change 事件?
$("#my_input").change(function() {
$(".StatusBox").html("");
$(this).unbind("change");
});
我有另一段代码在此之后运行并更改输入字段(用户单击日历日期并因此更新输入)。那不应该触发 change 事件吗?
【问题讨论】:
-
随后运行的代码无法触发更改事件,因为此例程
unbinds 更改事件。是我理解错了,还是需要澄清一下? -
当某些东西发生变化时触发 change 事件,比如用户输入了一个字符。模糊事件发生在失去焦点时。你怎么知道你的 change 事件没有被触发?你在里面放了一个console.log吗?
-
解除绑定仅在更改触发后发生,这也会清空我的错误消息状态框。我知道两者都没有发生,因为我的错误消息仍在显示。
-
@JayMcVety 您可能需要一个console.log 或警报来确保。如果这个选择器 $(".StatusBox").html("");不好,它不会清除它,它可能只是假设它没有触发。
-
是的,我删除了 console.log 语句以使其更短。我决定在用户单击日历中的日期后手动触发“更改”事件。更简单。并且状态框会清除所有其他输入字段,而不是在没有用户键入数据的情况下系统更新输入的情况。