Как узнать номер текстового поля в форме с помощью JavaScript - PullRequest
0 голосов
/ 21 ноября 2010

Как определить правильное количество текстовых полей (input type = "text") в 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>

Я просто не могу заставить эту работу работать, добавляя циклы.* Вы видите, что не так с моим кодом?

1 Ответ

2 голосов
/ 21 ноября 2010

Измените:

['qty[i]']

на:

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

и аналогичные для других, чтобы работать выше.Я предлагаю вам изменить <input> элементов для предоставления идентификатора, примерно так:

<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").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...