Еще один вопрос расчета jquery.
У меня есть пример кода с сайта плагина, с которым я играю, чтобы заставить его работать:
function recalc(){
$("[id^=total_item]").calc(
"qty * price",
{
qty: $("input[name^=qty_item_]"),
price: $("input[name^=price_item_]"),
},
function (s){ return s.toFixed(2);},
function ($this){ var sum = $this.sum();
$("#grandTotal").val(
// round the results to 2 digits
sum.toFixed(2)
);
}
);
}
Изменения в полях цены приводят к обновлению итогов:
$("input[name^=price_item_]").bind("keyup", recalc);
recalc();
Проблема в том, что я не буду знать значения полей цены, они будут доступны мне только как подстрока значений, введенных пользователем, назовите это 'itemcode'. В зависимости от php-запроса будет изменяться количество элементов.
Я придумал это, чтобы изменить цену в зависимости от кода товара:
$("input[name^='itemcode_item_1']").keyup(function () {
var codeprice = this.value.substring(2,6);
$("input[name^='price_item_1']").val(codeprice);
});
$("input[name^='itemcode_item_2']").keyup(function () {
var codeprice = this.value.substring(2,6);
$("input[name^='price_item_2']").val(codeprice);
});
Однако, пока он делает это, он также останавливает обновление item_total. Кроме того, я чувствую, что должен быть способ не писать нумерованную функцию для каждого элемента в списке. Однако, когда я просто использую
$("input[name^='itemcode_item_']")
обновление любого поля кода товара обновляет все поля цены, что нехорошо.
Кто-нибудь может указать мне правильное направление? Я знаю, что я немного невежественен здесь, но любой мой javascript - это не мое.
Хорошо, обновите это сейчас, чтобы добавить HTML. По сути, сейчас это всего лишь небольшой пример с сайта калькулятора jquery, который я использую, чтобы получить функциональность прямо перед вставкой всего этого в действующий скрипт. В действительности количество элементов будет различным, и они будут сгруппированы различными способами.
<table>
<tr><th>Qty</th><th align="left"></th><th>Item code</th><th>Price</th><th>Total</th></tr>
<tr>
<td><input type="text" name="qty_item_1" id="qty_item_1" value="1" size="3"/></td>
<td>Item One</td>
<td><input type="text" id="itemcode_item_1" name="itemcode_item_1" value="" size="8" /></td>
<td><input type="text" id="price_item_1" name="price_item_1" value="" size="8" /></td>
<td><input type="text" id="total_item_1" value=" " size="8" readonly="readonly" /></td>
</tr>
<tr>
<td><input type="text" name="qty_item_2" id="qty_item_2" value="1" size="3"/></td>
<td>Item Two</td>
<td><input type="text" id="itemcode_item_2" name="itemcode_item_2" value="" size="8" /></td>
<td><input type="text" id="price_item_2" name="price_item_2" value="" size="8" /></td>
<td><input type="text" id="total_item_2" value=" " size="8" readonly="readonly" /></td>
</tr>
<tr>
<td colspan="4" align="right"><strong>Grand Total:</strong></td>
<td><input type="text" id="grandTotal" value=" " size="6" readonly="readonly"> </td>
</tr>
</table>