2014-07-24 2 views
0

안녕하세요 I'v이 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); 

    }); 

을하지만 지금은 잠시을 사용하여 필드와 같은 일을하고 있음을 복제하고 있습니다 : 내가 전에하지만 클래스처럼 ID 또는 클래스를 사용했던 것처럼 내가 CALC 할 값을해야 어떤 필드 indentify 수있는 방법을 찾고

<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_NUMBER 또는 그런 것.

도움 주셔서 감사합니다!

답변

1

질문을 올바르게 이해하면 이벤트를 유발 한 요소를 식별 할 수있는 방법을 찾고 있습니다.

$("#desconto").focusout(function() { 
var id = $(this).attr('id'); 
... 
} 

은 그렇게해야합니다.
이벤트 핸들러의 키워드 this을 사용하면 이벤트를 트리거 한 요소에 액세스 할 수 있습니다.

+0

예, ID로 요소를 식별하고 싶습니다. 그러나이 ID는 항상 PHP를 통해 생성되는 반면, 항상 변경되므로 어딘가에 해당 요소를 확인하려고합니다. –

+0

@LucasCampos 위의 코드는'var id = $ (this) .attr ('id');'를 실행하면'var id '에'id = "id_22"'또는'id = "id_30" ' –

+0

많은 도움을 주신 덕분에 –

1

귀하의 요구 사항을 이해합니다. 동일한 ID 번호를 가진 다른 입력을 찾고 있습니다. 이를 위해 당신은 다음과 같은

$(".desconto").focusout(function(){ 
    var num = $(this).attr("id").substr(3,3); 

    var subtotal = $('#subtotal_'+num).val(); 
    var desconto = $('#id_'+num).val(); 

    .................................. 
    .................................. 

}); 
+0

ID의 숫자 부분이 얼마나 오랫동안 있는지 알 필요가 없으므로'substr' 호출에서 두 번째 매개 변수를 생략 할 것입니다. –

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

    }); 

그런 식으로이 일을 도움에 대한 감사를 시도 할 수 있습니다!

관련 문제