我有一系列具有相同类的动态生成的输入,例如:
在用户将数据输入到每个字段中之后,我要获取该数据并将其放置在隐藏输入的值字段中。
但是,我在寻找最好的方法时遇到了麻烦。到目前为止,我已经尝试过:
$(".addressitem").focusout(function() { var addressinput = $(this).val(); console.log(addressinput); });
和
$(".addressitem").change(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 on
委托方法。当您在上使用jQuery注册事件处理程序时,它将适用于DOM中当前和将来的元素(动态注入)。
所以你的代码将是
$(function(){ $(document).on("change",".addressitem",function() { var addressinput = $(this).val(); console.log(addressinput); }); });