2013-10-19 1 views
1

현재 여러 항목에 대해 일련의 확인란이 있습니다.이 확인란을 선택하면 총계가 수정됩니다. 자바 스크립트 코드는 아래와 같습니다.선택한 입력란을 다른 입력 이름으로 함께 추가하는 방법

<script type="text/javascript"> 
function checkTotal() { 
document.listForm.total.value = ''; 
var sum = 0.00; 
for (i=0;i<document.listForm.choice.length;i++) { 
if (document.listForm.choice[i].checked) { 
sum = sum + parseFloat(document.listForm.choice[i].value); 
} 
} 
document.listForm.total.value = sum.toFixed(2); 
} 

</script> 

이 코드는 정상적으로 작동하지만 모든 확인란의 입력 이름이 '선택 사항'입니다. 이를 변경하여 각 입력 이름이 choice1, choice2, choice3 등 다른 경우 어떻게해야합니까? 'choice'라는 이름을 추가하는 대신 모든 이름이 다른 확인란을 모두 추가하도록 JavaScript를 변경하는 방법은 무엇입니까?

도움이되고, HTML과 CSS의 지식은 좋지만 기본 JavaScript는 좋을 것입니다. 감사.

답변

0

jQuery를 사용하면 아래 코드 조각이 페이지의 모든 체크 상자 값을 추가합니다. 테스트하지는 않았지만 제대로 작동합니다.

$("input[type=checkbox]").each(function(){ 
    if(this.checked){ 
    sum = sum+this.val(); 
    } 
}); 
1

당신은 같은 것을 할 수있는이 테스트되지

function checkTotal() { 
    document.listForm.total.value = ''; 
    var sum = 0.00; 
    var i, inputs, input; 

    inputs = document.getElementsByTagName('input') 

    for (i=0;i<inputs.length;i++) { 
     input = inputs[i] 
     if (input.type === 'checkbox' && input.name.substr(0, 6) === 'choice') { 
      sum = sum + parseFloat(input.value); 
     } 
    } 
    document.listForm.total.value = sum.toFixed(2); 
} 

,하지만 코드는 모든 입력 요소에 대한 DOM을 보일 것입니다. 그런 다음 그것들을 반복하고 '선택'으로 시작하는 이름을 가진 체크 박스 인 것들을 확인합니다. 그런 다음 체크 박스의 값을 합계에 추가합니다.

jQuery와 같은 라이브러리는 이런 종류의 작업을 훨씬 쉽게 만듭니다.

+0

답장을 보내 주셔서 감사합니다. 합계가이 코드와 합산되지는 않습니다. 이유는 모르겠지만 초기 값 0.00으로 유지됩니다. – user2890036

+0

더 이상의 아이디어? 매우 감사 할 것입니다! – user2890036

+0

코드에 몇 가지 변경 사항을 적용했습니다. 나는 그것이 지금 일할 것이라고 생각한다. 그렇지 않은 경우 HTML과 콘솔에 표시되는 오류를 게시하십시오. https://developers.google.com/chrome-developer-tools/docs/console의 안내에 따라 Chrome에서 콘솔에 액세스 할 수 있습니다. –

관련 문제