今天工作的时候 遇到了用jquery选择 input输入框, 监听input中的内容变化,然后将input中的内容获取到,赋值给另一个input输入框。

这种逻辑本来很简单的。代码如下:

$(".showProductInfo").append("<tr>"
+"<td></td>"
+"<td>批量设置</td>"
+'<td><input type="number" class="product_info" name="setPrice" id="setPrice" onchange="setprice()" value="" /></td>'
+'<td><input type="number" class="product_info" name="setStock" id="setStock" value="" /></td>'
+"</tr>");

$('input[name=setStock]').on("change",function(){
   console.log($('[name=setStock]').val());
   $('[name=stock]').val($('#setStock').val());
});
登录后复制

我是尽量确保前面一段代码在后一段代码之前加载了,但是通过这种方式 选择不到 id=setStock的input输入框。

..............

十分钟后

我发现

$(".showProductInfo").append("<tr>"
+"<td></td>"
+"<td>批量设置</td>"
+'<td><input type="number" class="product_info" name="setPrice" id="setPrice" onchange="setprice()" value="" /></td>'
+'<td><input type="number" class="product_info" name="setStock" id="setStock" value="" /></td>'
+"</tr>");
登录后复制

这段代码是在一个按钮出发的,
但是

$('input[name=setStock]').on("change",function(){   
console.log($('[name=setStock]').val());   
$('[name=stock]').val($('#setStock').val());});
我是反在了script标签的尾部了。所以按钮没有点击之前,这段代码就已经执行了,此时上面的
$(".showProductInfo").append()还没有执行!!!
登录后复制

原因找到了!为了找到原因我还专门把第一个setprice()方法写到html中,变成html事件处理事件。 唉低级错误!!记录一下!共勉!


以上就是jquery中input的change事件失效的解决办法的详细内容,更多请关注Work网其它相关文章!

09-16 14:38