2010-11-20 4 views
0

사용자가 필드에 값을 입력 할 수있는 웹 페이지가 있습니다. 사용자가 필드를 업데이트하면 표시되는 총계를 자동으로 업데이트하려고합니다. 입력 필드가 동적으로 생성되기 때문에 "update"라는 JavaScript 함수를 만들었습니다. 내 코드의 샘플은 여기에 도시되어 JavaScript의 형식 번호

<input type="text" id="myField1" onchange="return update(this);" /> 
<input type="text" id="myField2" onchange="return update(this);" /> 
<span id="totalCount"></span> 

var total = 0; 
function update(e) { 
    var v = $(e).val(); 
    if (parseInt(v) != NaN) { 
    total = total + v; 
    $("#totalCount").html(total);  
    } 
    return false; 
} 

사용자가 입력

가 "2" "myField1"로, "02"는 "에서는 totalCount"요소에 표시한다. 실제로는 "2"만 표시하고 싶습니다. 계정에 이상한 항목을 넣을 때 JavaScript에서 어떻게합니까?

감사합니다.

+0

입력 할 때 '00'또는 '0'이 표시됩니까? – Marko

답변

4

$(e).val()은 문자열이므로 total + v도 문자열입니다. parseInt을 테스트 용뿐만 아니라 값을 사용할 때 사용하십시오.

var v = parseInt($(e).val(), 10); 
if (!isNaN(v)) { 
    total = total + v; 
    $("#totalCount").html(total); 
} 
+2

또한'NaN! = NaN'은 true를 반환합니다. isNaN (v); –

+0

@Ivo Wetzel : 고마워요, 고쳐주세요. – Gumbo

+0

@Gumbo, 그가 소수점을 입력하면 어떻게됩니까? 2.15 예를 들면? – Marko