嗨,我是这个jquery,如果我只有一个字段,它可以正常工作:
$("#desconto").focusout(function(){
var subtotal = $('#subtotal').val();
var desconto = $('#desconto').val();
subtotal = subtotal.replace('.' , '');
subtotal = parseFloat(subtotal.replace(',' , '.'));
desconto = desconto.replace('.' , '');
desconto = parseFloat(desconto.replace(',' , '.'));
if(desconto > 0)
total = (subtotal - desconto).toFixed(2);
else
total = subtotal.toFixed(2);
$('#total').val(total);
$('#totaldisabled').val(total);
});
但是现在我正在使用一段时间复制,并且那些字段做了类似的事情:
<input disabled="disabled" style="width:150px" class="form-control"
name="subtotalshow" type="text" value="12.417,77" id=subtotal_22>
<input disabled="disabled" style="width:150px" class="form-control"
name="subtotalshow" type="text" value="8020,07" id=subtotal_30>
<input style="width:150px" id="id_22" class="desconto" name="desconto[]" type="text">
<input style="width:150px" id="id_30" class="desconto" name="desconto[]" type="text">
我正在寻找一种方法来识别我必须使用值来进行计算的字段,然后将其发送回另一个,就像我之前使用的那样但是使用id或类,如class:id_number或类似的东西。
感谢您的帮助!
答案 0 :(得分:1)
如果我正确理解您的问题,您正在寻找一种方法来识别触发事件的元素。
$("#desconto").focusout(function() {
var id = $(this).attr('id');
...
}
应该这样做。
事件处理程序中的关键字this
允许访问已触发事件的元素。
答案 1 :(得分:1)
我从你的要求中理解了什么。您正在寻找另一个在其id中具有相同编号的输入。为此,您可以尝试以下
$(".desconto").focusout(function(){
var num = $(this).attr("id").substr(3,3);
var subtotal = $('#subtotal_'+num).val();
var desconto = $('#id_'+num).val();
..................................
..................................
});
答案 2 :(得分:0)
$(".desconto").focusout(function(){
var id = $(this).attr('id');
var id = id.substring(2,12);
var subtotal = $('.subtotal'+id).val();
var desconto = $(this).val();
subtotal = subtotal.replace('.' , '');
subtotal = parseFloat(subtotal.replace(',' , '.'));
desconto = desconto.replace('.' , '');
desconto = parseFloat(desconto.replace(',' , '.'));
if(desconto > 0)
total = (subtotal - desconto).toFixed(2);
else
total = subtotal.toFixed(2);
$('.total'+id).val(total);
$('.totaldisabled'+id).val(total);
});
这种方式有效,感谢您的帮助!