我提到了代码以及带有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>
文本框的dymamic 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 code
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++;
}
答案 0 :(得分:0)
这可能是问题
var x = document.getElementById('productname_'+j).value;
变量j未初始化,因此值未定义。我想没有id为“productname_undefined”的元素。因此,当您尝试从该未定义元素中读取值时,您将收到错误。像“无法读取未定义的属性值”这样的东西
PS:最好使用debugger
语句,而不是alert()
;