2012-04-19 2 views
2
<table> 
    <tr> 
     <td class="one"><input type="text"></td><td class="two"><input type="text" value="12"></td><td class="three"><input type="text"></td> 
    </tr> 
    <tr> 
     <td class="one"><input type="text"></td><td class="two"><input type="text" value="22"></td><td class="three"><input type="text"></td> 
    </tr> 
    <tr> 
     <td class="one"><input type="text"></td><td class="two"><input type="text" value="14"></td><td class="three"><input type="text"></td> 
    </tr> 
</table> 

$(".one input").change(function(){ 
    ??? 
}) 

LIVE 테이블 등) (다음 : 다음이 값 .two input.val() 및 결과 곱해야 첫 번째 열 (.one)에 값을 기입하는 경우 http://jsfiddle.net/34Vtk/

.three.input.val()에 표시해야 .

나는 ID로 이것을 할 수 있습니다,하지만 난 $(this)next()이 :(이 입력이 많은 것입니다 기능을 사용할 수 없습니다 그리고 난이 $(this)next()가 아닌 ID를 사용해야합니다.

답변

1

당신은 모두를 사용할 필요가 . $(this)와 같은 상위 컨텍스트 tr 소자

이 시도 :

$(".one input, .two input").change(function() { 
    var $row = $(this).closest("tr"); 
    var $one = $(".one input", $row); 
    var $two = $(".two input", $row); 

    var val1 = $one.val(); 
    var val2 = $two.val(); 
    var val3 = val1 * val2; 

    $(".three input", $row).val(val3); 
}); 

Example fiddle

.two input에도이 번호를 첨부해야 요소가 변경 될 때 그림이 업데이트되고 유효한 숫자가 입력되도록하는 유효성 검사 양식을 추가해야 할 가능성이 높습니다.

이 코드는 짧아 질 수 있습니다. 가능한 한 명확하게하기 위해 좀 더 자세하게 설명했습니다.

+0

감사합니다. 그리고 어떻게 항상 FLOAT로 결과를 보여줄 수 있습니까? http://jsfiddle.net/34Vtk/6/ 지금 가치 = 11.00이면이 쇼는 22.00 대신 22 만 남았습니다. –