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

하다하다 질문드려요 채택완료

머시기거시기 6년 전 조회 2,679

체크박스가 이런식으로 되어 있습니다.

<input type="checkbox"  id="checkboxG1" class="css-checkbox30" name="ext222_00" value="-3000" <? if($ext222_00 == "-3000")  echo 'checked="checked"'; ?> >

..

..

 

keyup이 있는 필드는 이거구요

 <input type=text name='wr_258' id="wr_258"  value="<?=$write[wr_258]?>">

 

 

위의 체크박스를 합산할 필드는

 <input type=text name='wr_52' id="wr_52"  value="<?=$write[wr_52]?>">

이렇구요

 

 

스크립트를

<script>
$(document).ready(function() {
    $("#wr_258").keyup(function() {
        var ext222_00 = $("<?php echo $ext222_00; ?>");
        var ext222_01 = $("<?php echo $ext222_01; ?>");
        var ext222_02 = $("<?php echo $ext222_02; ?>");    
        var ext222_03 = $("<?php echo $ext222_03; ?>");

        var sum = ext222_00+ext222_01+ext222_02+ext222_03;
        $("#wr_52").val(sum);

            
    });
});
</script>

 

이렇게 했는데... NAN이라면서

잘 안되네요..

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

답변 3개

채택된 답변
+20 포인트

안되는 이유는 다음과 같습니다.

 

 var ext222_00 = $("<?php echo $ext222_00; ?>");

위와 같은 소스는 말이 안됩니다.

$('#아이디 또는 .클래스') 이름이여야 합니다.

클래스의 이름안에 있는 요소의 데이터를 가져오고 싶으면, .val() 또는 .text()

이런식이 되겠죠.

하지만, 이것은 아닌것 같구요

 

var ext222_00 = $("<?php echo $ext222_00; ?>");

요것을

var ext222_00 = parseInt("<?php echo $ext222_00; ?>");

요런식이나

var ext222_00 = Number("<?php echo $ext222_00; ?>");

요런식으로 해보시길 바랍니다.

 

도움이 될련지 모르겠네요.

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

답변에 대한 댓글 1개

머시기거시기
6년 전
이해가 됩니다..여러가지로 해겠습니다.
감사합니다.

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

6년 전

NaN은 Not a Number라고 숫자가 아닌 값이 계산식에 들어와

숫자계산을 할려고 하니 숫자가 아니라는 NaN을 출력하게 됩니다.

PHP값을 가져오는 부분에서 값이 없거나 숫자 아닌 값이 들어 오지는 않는지 체크해 보시죠.

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

답변에 대한 댓글 1개

머시기거시기
6년 전
조언 덕분에 해결하였습니다. 감사합니다.

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

false
6년 전

Number() 또는 parseInt() 사용해서 숫자형으로 바꿔서 계산해보세요

 

var sum = Number(ext222_00)+Number(ext222_01)+Number(ext222_02)+Number(ext222_03);

또는

var sum = parseInt(ext222_00)+parseInt(ext222_01)+parseInt(ext222_02)+parseInt(ext222_03);

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

답변에 대한 댓글 1개

머시기거시기
6년 전
감사합니다..그런데 역시 NaN으로 나오네요

이 코드일때는 잘 되었는데요..
$(document).ready(function() {
$("#wr_337").keyup(function() {
var wr_3 = parseInt("<?php echo $write[wr_3]; ?>");
var wr_223 = parseInt("<?php echo $write[wr_223]; ?>");
var wr_258 = $("#wr_258").val();
var wr_337 = $("#wr_337").val();

var sum = parseInt((wr_3+wr_223)*(wr_337/100)*wr_258);
$("#wr_230").val(sum);
$("#wr_186").val(sum);

});
});

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

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

로그인