今天工作的時候 遇到了用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事件失效的解決辦法的詳細內容。更多資訊請關注PHP中文網其他相關文章!