Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 从.focusout()上的输入检索.val()_Javascript_Jquery_Onfocus - Fatal编程技术网

Javascript 从.focusout()上的输入检索.val()

Javascript 从.focusout()上的输入检索.val(),javascript,jquery,onfocus,Javascript,Jquery,Onfocus,我有一系列同一类的动态生成输入,例如: <input class="addressitem" type="text"/> <input class="addressitem" type="text"/> <input class="addressitem" type="text"/> 及 但我无法在控制台中显示任何内容 有人能给我指出正确的方向吗?只要您在文档中定义它们,这两种方法都应该有效。ready事件并且您的页面中没有任何其他脚本错误 $(functi

我有一系列同一类的动态生成输入,例如:

<input class="addressitem" type="text"/>
<input class="addressitem" type="text"/>
<input class="addressitem" type="text"/>

但我无法在控制台中显示任何内容


有人能给我指出正确的方向吗?

只要您在
文档中定义它们,这两种方法都应该有效。ready
事件并且您的页面中没有任何其他脚本错误

$(function(){

   $(".addressitem").change(function() {
    var addressinput = $(this).val();
    console.log(addressinput);
   });

   $(".addressitem").focusout(function() {
    var addressinput = $(this).val();
    console.log(addressinput);
   });

});
您可以使用浏览器控制台验证页面中是否存在其他脚本错误

还要记住,焦点不在时,文本输入字段上会发生
change
事件。因此,当用户从文本框更改焦点时,您将看到console.log。如果你想要即时更新,你应该考虑使用<代码> KEYUP 事件

这是一个工作样本


编辑:根据注释:我使用Jquery单击函数生成字段。我必须在click函数中移动我的代码,它才能工作

不,你不需要。您只需在委托方法上使用jQuery
。向注册事件处理程序时,它将适用于DOM中的当前和未来元素(动态注入)

因此,您的代码将是

$(function(){

   $(document).on("change",".addressitem",function() {
     var addressinput = $(this).val();
     console.log(addressinput);
   });     

});

只要在
document.ready
事件中定义了这两种方法,并且页面中没有任何其他脚本错误,这两种方法都应该有效

$(function(){

   $(".addressitem").change(function() {
    var addressinput = $(this).val();
    console.log(addressinput);
   });

   $(".addressitem").focusout(function() {
    var addressinput = $(this).val();
    console.log(addressinput);
   });

});
您可以使用浏览器控制台验证页面中是否存在其他脚本错误

还要记住,焦点不在时,文本输入字段上会发生
change
事件。因此,当用户从文本框更改焦点时,您将看到console.log。如果你想要即时更新,你应该考虑使用<代码> KEYUP 事件

这是一个工作样本


编辑:根据注释:我使用Jquery单击函数生成字段。我必须在click函数中移动我的代码,它才能工作

不,你不需要。您只需在
委托方法上使用jQuery
。向注册事件处理程序时,它将适用于DOM中的当前和未来元素(动态注入)

因此,您的代码将是

$(function(){

   $(document).on("change",".addressitem",function() {
     var addressinput = $(this).val();
     console.log(addressinput);
   });     

});

这可能是最好的选择,正如您所说,它们是动态生成的输入

$(document).on("blur",".addressitem",function() {
    var addressinput = $(this).val();
    console.log(addressinput);
});


检查您的控制台,这可能是最好的选择,因为您说过它们是动态生成的输入

$(document).on("blur",".addressitem",function() {
    var addressinput = $(this).val();
    console.log(addressinput);
});


检查您的控制台

这取决于OP希望执行操作的事件
change
focusout
仅在用户从输入字段失去焦点时才起作用(至少在
type=“text”
时)。谢谢-是的,您说得对。您帮助我发现的问题是,我的字段是由Jquery单击函数生成的。我必须在点击功能中移动我的代码,它才能工作。哦,不!您不需要在click事件中注册事件处理程序。这将在每次单击use时注册代码,最终导致奇怪的行为。您应该在
方法上使用jQuery
。请参阅我的更新答案。这取决于OP希望执行操作的事件
change
focusout
仅在用户从输入字段失去焦点时才起作用(至少在
type=“text”
时)。谢谢-是的,您说得对。您帮助我发现的问题是,我的字段是由Jquery单击函数生成的。我必须在点击功能中移动我的代码,它才能工作。哦,不!您不需要在click事件中注册事件处理程序。这将在每次单击use时注册代码,最终导致奇怪的行为。您应该在
方法上使用jQuery
。请参阅我的最新答案。