2010-11-21 4 views
0

javascriptを使用してHTMLフォーム内のテキストボックス(入力タイプ= "テキスト")の正しい数を決定する方法を教えてください。 私がここでやろうとしているのは、数量と価格を提供することによって小計を計算することです。javascriptを使用してフォーム内のテキストボックスの数を知る方法

<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ループを追加すると、この作業ができないようです。

私のコードに間違いがありますか?

答えて

2

変更:

['qty[' + i + ']'] 

と他のものは、上記の作業をするための同様:

['qty[i]'] 

へ。

<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; 

注私はあなたが<input> IDを提供するための要素、これらの線に沿って何かを変更示唆します文字列を取得するには、parseIntおよび/またはparseFloatを使用するとします。

すなわち、このような何か:

quant[i] = parseFloat(document.getElementById(['qty[' + i + ']']).value); 

にエラー(例えばチェックを検討する必要がありますということにも注意してください、誰かが "123.45"の代わりに "qqaacc"を価格フィールドに入力した場合)。

+0

parseIntとparseFloatを使用する場合は注意してください。http://www.bennadel.com/blog/2012-Exploring-Javascript-s-parseInt-And-parseFloat-Functions.htm –

関連する問題