[英]How to know the number of textbox in a form using javascript
如何使用 Javascript 確定 html 表單中文本框(輸入類型=“文本”)的正確數量。 我在這里要做的是通過提供數量和價格來計算小計。
<script type="text/javascript">
function compute(){
var quant=new Array();
var price=new Array();
var stotal=new Array();
var tbox=new Array();
var elemlent=document.x.elements.length;
var dib=elemlent /3;
for(var i=0; i<dib; i++)
{
quant[i] = document.x.elements['qty[i]'].value;
price[i] = document.x.elements['cost[i]'].value;
stotal[i]= quant[i] * price[i];
tbox[i] = document.x.elements['subtotal[i]'];
if (tbox[i])
{
tbox[i].value = stotal[i];
}
}
}
</script>
<body>
<table border="1">
<form name="x">
<th>QTY</th>
<th>COST</th>
<th>SUBTOTAL</th>
<td>+</th>
<?php
for($i=0;$i<2;$i++){
?>
<tr>
<td><input type="text" name="qty[<?php echo $i; ?>]" value=""/></td>
<td><input type="text" name="cost[<?php echo $i; ?>]" value=""/></td>
<td><input type="text" name="subtotal[<?php echo $i; ?>]" value=""/></td>
<td><img src="add-icon.png" onmouseover="compute();"></td>
</tr>
<?php } ?>
</form>
</table>
</body>
當我添加 for 循環時,我似乎無法完成這項工作。
你能看出我的代碼有什么問題嗎?
改變:
['qty[i]']
到:
['qty[' + i + ']']
和其他類似的方法來完成上述工作。 我建議您更改<input>
元素以提供 id,大致如下:
<input type="text" id="qty[<?php echo $i; ?>]" name="qty[<?php echo $i; ?>]" value=""/>
然后,而不是:
quant[i] = document.x.elements['qty[i]'].value;
采用:
quant[i] = document.getElementById(['qty[' + i + ']']).value;
另請注意,您將獲得一個字符串,所以我想您想使用parseInt
和/或parseFloat
:
即像這樣的東西:
quant[i] = parseFloat(document.getElementById(['qty[' + i + ']']).value);
另請注意,您可能需要考慮檢查錯誤(例如,如果有人在價格字段中輸入“qqaacc”而不是“123.45”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.