У меня есть два поля ввода, и без изменения их имен (т.е. я должен использовать имя в скобках), как мне заставить этот код JavaScript работать?
<script>
function calc_concreteprice(mainform) {
var oprice;
var ototal;
oprice = (eval(mainform.['concrete[concrete][sqft]'].value) * eval(mainform.['concrete[concrete][price]'].value));
ototal = (oprice);
mainform.'concrete[concrete][quick_total]'.value = ototal;
}
</script>
Вот HTML-код области ввода.
<tr>
<td>Concrete Base Price</td>
<td><input type="text" name="concrete[concrete][price]" value="" class="item_mult" onBlur="calc_concreteprice(document.forms.mainform);" /> per SF <strong>times</strong> <input type="text" name="concrete[concrete][sqft]" value="" class="item_mult" onBlur="calc_concreteprice(document.forms.mainform);" /> SF</td>
<td> = <input type="text" name="concrete[concrete][quick_total]" value="" /></td>
</tr>
Я знаю, что могу заставить его работать, изменив_the_input_name_with_underscores, но мне нужно иметь имена в квадратных скобках (для хранения содержимого формы в массиве).
РЕДАКТИРОВАТЬ: Оставьте этот вопрос в вики сообщества, поэтому, пожалуйста, внесите свой вклад, если считаете нужным внести изменения в код!