2011-01-11 9 views
0

주어진 수량 및 가격에서 값을 계산하려고합니다. jquery에서 keyup 이벤트를 사용하여 수량 및 가격의 현재 값에서 총계를 계산했습니다. 키 누르기 이벤트를 시작하는 현재 텍스트 상자를 어떻게 참조 할 수 있습니까? 그리고 할당 된 상자에 해당 합계를 입력하십시오.
결과를 쉽게 얻을 수있는 jquery 플러그인에 대해 알고 계십니까?jquery에서 텍스트 상자의 현재 값을 얻는 방법

Heres는

<script type="text/javascript"> 
$(function(){ 

$('input[name^=qty]').keyup(function(){ 

    var curprice=$('input[name^=price]').val(); 
    var curqty=$('input[name^=qty]').val(); 
    var curtotal=curprice * curqty; 

    $('input[name^=comp]').val(curtotal); 
}); 




}); 

</script> 

</head> 
<body> 




<?php 
for($a=0;$a<=5;$a++){ 
    ?> 


    Price:<input type="text" name="<?php echo 'price'.$a; ?>" value="<?php echo $a; ?>"/> 
    Quantity:<input type="text" name="<?php echo 'qty'.$a; ?>" value="<?php echo $a; ?>"/> 
    Computed:<input type="text" id="<?php echo 'a'.$a; ?>" name="<?php echo 'comp'.$a ?>" value="" /> 


    <?php 
echo "<br/>"; 
} 

?> 




</body> 
</html> 

스크린

. alt text

자세한 내용이 필요하면 언제든지 문의하십시오.

답변

1
<script type="text/javascript"> 
$(function(){ 

$('input[name^=qty]').keyup(function(){ 

    var parentDiv = $(this).closest('div'); 
    var curprice=parentDiv.find('input[name^=price]').val(); 
    var curqty= this.value; 
    var curtotal=curprice * curqty; 

    parentDiv.find('input[name^=comp]').val(curtotal); 
}); 




}); 

</script> 

</head> 
<body> 




<?php 
for($a=0;$a<=5;$a++){ 
    ?> 

    <div> 

    Price:<input type="text" name="<?php echo 'price'.$a; ?>" value="<?php echo $a; ?>"/> 
    Quantity:<input type="text" name="<?php echo 'qty'.$a; ?>" value="<?php echo $a; ?>"/> 
    Computed:<input type="text" id="<?php echo 'a'.$a; ?>" name="<?php echo 'comp'.$a ?>" value="" /> 

    </div> 
    <?php 
echo "<br/>"; 
} 

?> 




</body> 
</html> 

현재 코드와 관련된 모든 변경 사항을 확인하십시오.

1

다음은 다른 것입니다. regex를 사용하여 요소 이름의 번호 부분을 가져오고 priceX 및 compX라는 항목이 관련 입력이라고 가정합니다.

$("input[name^=qty]").keyup(function() { 

    var i = /^qty(\d+)$/.exec($(this).attr('name'))[1], 
     price = parseFloat($("input[name=price" + i + "]").val()), 
     qty = parseInt($("input[name=qty" + i + "]").val(), 10); 

    $("input[name=comp" + i + "]").val(price * qty); 

}); 

예 : http://jsfiddle.net/AHUHu/

관련 문제