2014-01-15 3 views
0

여러 행이있는 양식이 있습니다. 각 행에 대한 합계를 계산하고 싶습니다. 즉 cost * unit 가격을 입력하고 결과를 전체 입력에 넣습니다. 다음은 내가 시도한 스크립트입니다.한 번에 하나씩 여러 행에 대해 키 입력 계산을 수행하는 방법

<script> 
$(document).ready(function(){ 
    var input; 
    $('#p1').keyup(calculate('#p1')); 
    $('#p2').keyup(calculate('#p2')); 
}); 
function calculate(input) 
{ 
    $(input + 'Total').val($(input).val() * $(input + 'cost').val()); 

} 
</script> 

답변

0

적어도 하나의 문제는 .keyup() 메서드가 기능을 기대한다는 것입니다. 귀하의 예제에서 calculate을 사용하는 방법은 이벤트를 추가 할 때 즉시 함수를 호출하는 것입니다. 이 문제를 방지하려면

, 당신이 뭔가를 할 수 있습니다 :

$('#p1').keyup(function() { calculate('#p1') }); 

또 다른 옵션은 계산 함수는 함수 참조 반환해야하는 것입니다 :

function calculate(input) 
{ 
    return function() { 
     $(input + 'Total').val($(input).val() * $(input + 'cost').val()); 
    } 
} 

그런 다음 이벤트 -을 추가 할 수 있습니다를 처리기를 사용합니다.

$('#p1').keyup(calculate('#p1')); 
+0

True이면 제대로 작동합니다. 감사합니다 – jkkenzie

+0

@ user2188335 다행! 이전 질문에 대한 대답을 받아 들였습니다. 가장 유용한 대답을 허용 된 것으로 표시하는 것이 왜 좋은지에 대한 자세한 정보가 있습니다. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

+0

. 마지막 질문 하나. 이 함수에 sum을 추가하여 id # p1total, # p2total, # p3total으로 모든 입력을 합할 수 있습니까? 나는 1,2,3을 생성하는 PHP 루프를 사용합니다. – jkkenzie