Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .on(';change';)不';t为动态文本框输入触发_Javascript_Jquery - Fatal编程技术网

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是一个很好的解决方案!