Javascript .on(';change';)不';t为动态文本框输入触发
我有一个日期选择器,用于设置文本框的值。每次文本框中的文本更改时,我都要提交表单。下面是我认为可以实现这一点的代码片段:Javascript .on(';change';)不';t为动态文本框输入触发,javascript,jquery,Javascript,Jquery,我有一个日期选择器,用于设置文本框的值。每次文本框中的文本更改时,我都要提交表单。下面是我认为可以实现这一点的代码片段: $(document).ready(function() { watchDateFields(); } function watchDateFields() { $('form .date_field').on('change', function() { this.form.submit(); } } 动态设置.date\u字段输入,但由于某些原因,
$(document).ready(function() {
watchDateFields();
}
function watchDateFields() {
$('form .date_field').on('change', function() {
this.form.submit();
}
}
动态设置
.date\u字段
输入,但由于某些原因,这不会触发更改事件?您需要将其附加到静态元素:
$(document).on('change', 'form .date_field', function() {
this.form.submit();
}
或者,最好将文档
替换为静态文档。例如:
$('form').on('change', '.date_field', function() {
this.form.submit();
}
或者您可能需要使用插件的事件处理程序附加事件,例如:
$('form .date_field').on('datechange', function() {
this.form.submit();
}
change
事件只会触发一次,即当用户在输入中输入一个新值,然后将焦点移开时
如果要在用户键入时更新,请使用keydown
事件
但是,每次按下一个键时提交表单并不是一个好主意。你想要达到的结果是什么?至少考虑验证输入或检查在提交数据之前满足某些条件(例如,确保输入至少有10个字符长)。 < P>将您的<代码> TeXFiels放置在<代码> div < /C>元素中,并将<代码>更改< /代码>事件附加到该div:
$('#mydiv').on('change', '.date_field', function(){
this.form.submit();
});
现在,mydiv
元素将监视其所有子元素的更改环境,无论它们是动态生成的
$( "input" ).keyup(function() {
//It's changed
});
轻松跟踪任何地方的任何变化。。。许多具有2种数据绑定方式的框架,使用Javascript中的keyup来监视更改
另外,jQueryUI日期选择器有onSelect…这是一种简单的工作方式。。。查看了解更多信息…使用javascript(动态)设置输入值不会触发
change
事件。您必须连接到设置值的任何内容,或者尝试在此处发布代码。@kosmos您应该更好地阅读问题。他们不是动态创建元素,而是设置值。我明白了,这是我的错。这类问题太多了。删除重复评论..根据答案,这里一定有一些混乱?元素是动态添加的,还是动态设置的值,或者更正确的编程设置的值。答案不是relavent@murli2308为什么不呢?我提供了一个有效的解决方案。更改事件只会触发一次,即当用户在输入中输入一个新值,然后将焦点转移到别处时。。。StackOverflow上已存在此问题这是使用.on()
的错误方法。请更正它。@PraveenKumar谢谢你。是的,我真的很想知道谁是落选者:P
在这种情况下,跟踪keyup是一个很好的解决方案!