0

我的表单中有一个文本框数组,我需要在输入价格和 % 时根据百分比计算成本价格,cp 是用 mouseup 事件计算的

sp1(name = price[] class = price)  %(class = perc)  cp1(name = cost[] class = cost)
sp2(name = price[] class = price)  %(class = perc)  cp2(name = cost[] class = cost)
sp3(name = price[] class = price)  %(class = perc)  cp3(name = cost[] class = cost)
sp4(name = price[] class = price)  %(class = perc)  cp4(name = cost[] class = cost)
sp5(name = price[] class = price)  %(class = perc)  cp5(name = cost[] class = cost)

这是我的jQuery代码

$(function(){
var price = document.getElementsByClassName('price')[0];
var taxAmount = document.getElementsByClassName('cost')[0];
var tax = document.getElementsByClassName('perc')[0];

tax.onblur = function() {
    var taxAmount1= parseFloat(price.value) * parseFloat(tax.value) / 100;
    var tt = parseInt(price.value)-parseInt(taxAmount1);
   taxAmount.value=tt;
}   
});

但这仅计算第一个文本框我如何为整个文本框数组执行此操作,并且我正在使用数组,因为我想在 php 中提交此表单。

将不胜感激任何帮助。

4

1 回答 1

0

jQuery 选择器非常适合匹配元素的数组,所以如果你写,

$('.perc').blur( function() {
    ...
} );

将为类“perc”的所有元素处理该事件。现在要继续计算,您需要访问具有“价格”和“成本”类的剩余字段,获取值$theElement.val()并进行计算。

最简单的两种方法是

  1. 从导致事件的元素 $(this) 开始,浏览您的 DOM 树并搜索剩余的字段。例如,如果 price、taxAmount 和 tax 的输入字段是同级的,您可以使用对应的jQuery 方法( $(this).siblings('.cost').val();)。还有其他方法可以访问父级、子级等。
  2. 将三个相关输入字段的索引存储在 HTML5 数据属性中,例如<input ... class="price" data-index="0" />. 这样,您可以轻松地选择其他字段var index = $(this).data('index'); var price = $('input[data-index="' + index + '"].price').val();

您应该能够继续使用这些提示。如需更详细的阐述,请提供相关的 HTML 结构。

于 2012-08-11T01:31:07.247 回答