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());
});
});
我试图在用户修复空白字段时删除表单上的警告。 我的通用代码适用于用户必须在字段中键入的所有输入元素,但如果系统将日期放置在字段中,我的具有弹出日历的输入不会触发 "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());
});
});