簡體   English   中英

如何使用javascript知道表單中文本框的數量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM