채택완료

하다하다 질문드려요

2019-03-16 (토) 01:41:11 2,923

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

<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개 / 댓글 3개

채택된 답변
+20 포인트
2019-03-16 (토) 07:19:25

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

 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개

2019-03-16 (토) 09:44:34
이해가 됩니다..여러가지로 해겠습니다.
감사합니다.

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

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

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

답변에 대한 댓글 1개

2019-03-17 (일) 05:16:18
조언 덕분에 해결하였습니다. 감사합니다.

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개

2019-03-16 (토) 02:22:33
감사합니다..그런데 역시 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);

});
});

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