2013-05-22 6 views
1

왜 그런지는 잘 모르겠지만 변수에 1을 더하려면 심각한 문제가 있습니다.js에 두 개의 변수 추가

net = $('#net').val()+1; 
$('#net').val(net).change(); 

이 결과는 1입니다. (이것은 연결 중임을 이해합니다.) 마지막 줄은 내 입력란에 출력하는 것입니다. 내가 이렇게하면 :

net = net+1; 
$('#net').val(net).change(); 

나는 NaN을 얻는다. parseInt를 다음과 같이 사용하려고하면 :

net = net+1; 
net = parseInt(net,10); 
$('#net').val(net).change(); 

나는 여전히 NaN을 얻습니다. Ihave는이 문제를 해결 한 다른 예제를 살펴 보았고 parseInt()를 사용한다고 말합니다. 이 외에도 기존 번호에 1을 더하고 필드에 putit을 추가하려고하면 어떻게해야합니까?

+0

parseInt ($ ('# net')의 결과는 무엇입니까? val()) + 1 –

답변

4

는 시도 코드에서 다음 net = parseInt(net,10);

net = net+1;

을 할 수있는 당신이 할 : 잘못된

net = net+1; //from this point net=11 
net = parseInt(net,10); 

는, 당신은 당신의 두 문장

net = parseInt(net,10); //here net=1 (integer representation) 
net = net+1; // the '+' between two integers will result in an addition and not a concatenation 
+1

"011"과 같은 문자열이 9로 해석 될 수있는 홀수 엣지를 방지하기 때문에 parseInt (net, 10)가 가장 좋은 답변입니다. – Andrew

+0

이것이 마침내 트릭을 만든 것입니다. 귀하의 도움과 답변에 감사드립니다. – Jim

3

이 시도 :

net = +net + 1; 
$("#net").val(net); 

순 변수 앞의 +Number

바이올린이 캐스트 :이 도움이 될 http://jsfiddle.net/tymeJV/WudHW/1/

+0

여전히 NaN을 얻습니다. 이중 quuotes가 효과를 낼 수 있습니까? – Jim

+0

@Jim 좋아하는 브라우저 개발자 도구에서 중단 점을 유지하고 문제가 발생한 위치를 확인하십시오. –

+0

@ 짐 - 수학을하기 전에 빠른 '경고 (네트)'를하고 'net'변수에 실제로 데이터가 들어 있는지 확인할 수 있습니까? – tymeJV

1
var a = parseInt($('#net').val())+1 

$('#net').val(a).change(); 

.

net = parseInt($('#net').val()); 

을 그리고 당신이 원하는 모든 추가 기능을 수행

0

것은 당신의 변수 net 숫자 만 문자열이 먼저 int로 파싱 할 필요가있다.

0

사용을 반전한다 parseInt

 net = parseInt($('#net').val())+1; 
    $('#net').val(net).change(); 
0

val()은 문자열을 반환하고 숫자 1과 공백 문자가 포함 된 문자열에 1을 추가하려고합니다. 예를 들어보십시오

var net = +$.trim($('#net').val()); 
$('#net').val(net + 1).change(); 

이렇게하면 공백이 제거되고 입력 (?) 필드에 다시 삽입하기 전에 숫자로 그물을 캐스팅합니다.