[英]js are not running on chrome but running on firefox
我提到了帶有js文本框的代碼和動態代碼。 我在運行此代碼時遇到了chrome問題,但是同一代碼在Firefox上正確運行,所以請給我一些有關此代碼的建議。
文本框的html代碼
<td><input class="form-control" required type='text' id='productname_1' name='productname[]'/></td> <td><input class="form-control" readonly="" required type='text' id='price_1' name='price[]'/></td> <td><input class="form-control" required type='text' id='quantity_1' name='quantity[]'/></td> <td><input class="form-control" readonly="" required type='text' id='total_1' name='total[]'/> </td>
文本框的動態HTML代碼
<td><input class='form-control productname12_"+i+"' required type='text' id='productname_"+i+"' name='productname[]'onchange='myFunction()'/></td> <td><input class='form-control' readonly type='text' id='price_"+i+"' required name='price[]'/></td><td><input class='form-control' type='text' required id='quantity_"+i+"' name='quantity[]'/></td><td><input class='form-control' readonly type='text' required id='total_"+i+"' name='total[]'/></td>
js代碼
function myFunction() { var x = document.getElementById('productname_'+j).value; //alert(x); $.ajax({ type:"POST", url:"addplaceorder/getproductprice", data:{'name':x}, cache:false, success:function(html){ //alert(html); //alert('#price_'+k); $('#price_'+k).val(html); } }); $('#quantity_'+j).change(function(){ var val = $(this).val(); var price = $('#price_'+k).val(); //alert(name); var total = (val* price); //alert(total); totalamount = totalamount+total; //alert(totalamount); $('#total_'+k).val(total); $('#showtotal').text(totalamount); }); $('#quantity_'+j).keypress(function (e) { if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { //display error message //$("#errmsg").html("Digits Only").show().fadeOut("slow"); return false; } }); j++;k++; }
這可能是問題所在
var x = document.getElementById('productname_'+j).value;
變量j未初始化,因此該值未定義。 我想沒有ID為“ productname_undefined”的元素。 因此,當您嘗試從該未定義元素中讀取值時,將收到錯誤消息。 諸如“無法讀取未定義的屬性值”之類的內容
PS:最好使用debugger
語句,而不要使用alert()
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.