2013-05-10 5 views
0

나는이 자바 스크립트 코드를 사용하여 오전에 체크 박스 값을 추가 :자바 스크립트 클릭

<script> 
function add(total, this_chk_bx) 
{ 
    var thetotal = form2.thetotal.value; 

    if(this_chk_bx.checked==true) 
    { 
     //add if its checked 
     form2.thetotal.value = Number(thetotal)+Number(total); 
    } 
    else 
    { 
     //subtract if its unchecked 
     form2.thetotal.value = thetotal-total; 
    } 
} 
</script> 

과 나는 데이터베이스에 테이블에서 선택하고, 플로트 필드와 값으로 체크 박스를 추가 PHP/HTML 코드가 데이터베이스

내가하려는 것은 확인란을 선택하면 값을 추가하고 텍스트 필드에 표시 한 다음 선택을 취소하면 해당 값을 필드에서 제거합니다. .

뺄셈을하면 홀수와 잘못 표시됩니다.

당신은 또한 HMTL 볼 수 있도록 내가 여기에 바이올린을 만들었습니다 : 나는 그것이 제대로 작동 얻기 위해 무엇을 할 수 있는지에 http://jsfiddle.net/j08691/kHxmG/4/

어떤 아이디어? 내가 제안

+0

귀하의 바이올렛이 깨졌습니다. – NullPointerException

+1

부동 소수점 값으로 인해 문제가 발생했습니다. 이걸 봐 http://stackoverflow.com/questions/1458633/elegant-workaround-for-javascript-floating-point-number-problem – NullPointerException

+0

나는 바이올린을 고쳤다. – j08691

답변

0

***jsFiddle Demo***

당신은이 글을 읽어

당신을 위해 수를 보정하는 기능을 쓰기 :

function correctNumber(number) { 
    return (parseFloat(number.toPrecision(12))); 
} 

그리고3210이 기능에 최종 번호를 전달합니다

function add(total, this_chk_bx) { 
    var thetotal = (form2.thetotal.value * 1); 
    var total = total * 1; 

    if (this_chk_bx.checked == true) { 
     //add if its checked 
     form2.thetotal.value = correctNumber(thetotal + total); 
    } else { 
     //subtract if its unchecked 
     form2.thetotal.value = correctNumber(thetotal - total); 
    } 
} 

jsFiddle Demo을 확인하는 것을 잊지 마십시오.

+0

우수 - 완벽하게 작동했습니다. 매우 감사합니다! –

0
function add(total, this_chk_bx) 
{ 
    var thetotal = form2.thetotal.value; 
    if(this_chk_bx.checked==true) 
    { 
     //add if its checked 
     form2.thetotal.value = ((thetotal*100)+(total*100))/100; 
    } 
    else 
    { 
     //subtract if its unchecked 
     form2.thetotal.value = ((thetotal*100)-(total*100))/100; 
    } 
} 
+0

전에 상위 하나를 확인한 다음 두 번째 것을 선택하고 상위 상자의 선택을 취소하고 전체 상자에서 번호를 확인하십시오. - 이전에 저에게 일어난 일입니다. - 정말 혼란 스러워요. –

+0

@NullPointerException에 의해 게시 된 링크 이 문제에 대한 설명과 해결책이 있습니다. – Orangepill

+0

필자는 sprintf ("% .2", thetotal)와 같은 sprintf 함수를 시도했지만 여전히 아무것도 아니며 부동 소수점 수학 문제를 제거하기 위해 scaling 메소드를 사용하도록 textfiedl –