使用相同的jquery计算不同的值

时间:2014-07-24 13:08:18

标签: jquery

嗨,我是这个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或类似的东西。

感谢您的帮助!

3 个答案:

答案 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); 

  });

这种方式有效,感谢您的帮助!