테스트 사이트 - 개발 중인 베타 버전입니다

라디오 합산 하는데... 채택완료

머시기거시기 6년 전 조회 1,291

라디오 버튼 #_3 을 클릭하면

#e_4 값의 합산값을 #h1_2 넣는것입니다.

잘 됩니다. 그런데 

클릭할 때마다 합산되어 코드가 잘못된거 같습니다.

 

방법이 없을까요?

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
c
6년 전

예전에 중복체크 가능한 체크박스들 값을 합산 매긴 적이 있는데...

 

전 클릭이벤트로 하지않고 체인지 이벤트로 해서...

 

체크가 되면 체크된 value 값을 += 처리하고 체크가 해제되면 value 값을 -= 처리하는 식으로 구현했던 기억이 나네요...

 

</p>

<p>// 이건 제가 짰던 코드 그대로 복붙한건데...</p>

<p>// 그대로 가져다가 마크업에 맞게 선택자 수정해서 써도.. 될지는 모르겠네요...;;</p>

<p>$(el).find('li').each(function(j, el){

    var $check = $(this).find('input');</p>

<p>   </p>

<p>    $check.on('change', function(){

        if($(this).is(':checked'))

            score += parseInt($(this).val());

        else

            score -= parseInt($(this).val());

    });

});</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

머시기거시기
6년 전
아 좋은 방법 같습니다.!
참고해보겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

6년 전

    $('#e_4').each( function() { <---이 구문 자체가 용도가 틀린 것 같군요

each라는 것이 class='abc' 같이 하여 여러개가 있을 때 사용하는 것이지

#e1_4 라면 id를 나타내는 것일텐데 id라면 하나 밖에 없을테고 each를 사용하지는 않죠

for문을 없애고 1_3 ~ 15_3 은 class='a'

e1_4 ~ e15_4 는 class='b' 이렇게 부여한 후 아래처럼 하면 됩니다

 

$(funcrion(){

$('.a').on('click', function() {    

  sum=0;     $('.b').each( function() {         sum += Number($(this).val());     });     $('#h1_2').val(sum.toFixed(2));  });

});

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

머시기거시기
6년 전
감사합니다. a 한개만 클릭해도 b클래스의 모든 값이 합산되어 나오네요
균이
6년 전
전체 합산을 구하도록 만들어진 겁니다
어떤 작동을 원하나요?
머시기거시기
6년 전
선택한 것만 합산을 원하는 것이 었습니다.

댓글을 작성하려면 로그인이 필요합니다.

`sum` 을 on click event 처리루틴 안쪽에 넣어보세요.

</p>

<p>    ...</p>

<p>    $('#<?php echo $i?>_3').on('click', function() {

        var sum = 0;</p>

<p>         ...</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

머시기거시기
6년 전
원래 거기에 있던 거를 합산이 안되어
위토즈님이 위로 빼보라고 해서 뺐더니 합산은 잘되는데
클릭할 때마다 값이 증가되어 버려서요,,ㅋ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인