2017-01-13 4 views
0

두 개의 버튼이 있으며 그 사이에 하나의 양식이 있습니다. 하나의 버튼은 "+"와 다른 하나는 "-"라고 말합니다. 증가/감소 버튼을 만들려고하는데 제대로 작동하지 않습니다. 증가가 일어나지 않고 대신 연결이 일어나고있는 상황에서 추가가 문제가되는 것 같습니다. 양식 값이 0이고, "+"버튼을 누를 때 예를 들어,이 oldValue입니다 01이고 다시 증가, 그것은 011를 반환하면 0 01에 내 자바 스크립트 코드가자바 스크립트/jQuery : 왜 증가가 작동하지 않습니까?

//assume the oldValue read 0 from the form 
newValue = oldValue + 1 
alert(newValue); //this returns 01 instead of 1 

을 가지고 변경합니다. 왜 이것이 증가하지 않지만 결국 1을 연결합니까? 놀랍게도, 더하기가있는 곳에 빼기가 있다는 것을 제외하고는 같은 코드로 감소가 완벽하게 작동합니다.

평화롭게 양식 값을 늘릴 수 있습니까? 아무도 "+ 1"이 작동하지 않는 이유를 설명 할 수 있습니까?

+2

처럼 번호/INT 에 경우 키워드 Number를 사용하여 변환 할 수있는'+'도 문자열 연결에 사용됩니다. alert (typeof oldValue)하면 숫자가 아닌 문자열로 표시됩니다. – PitaJ

+2

'oldValue'는 String입니다. 번호로 변환하십시오. – Tushar

+0

감사합니다. 양식에서 읽은 데이터가 스트링이라는 것을 깨닫지 못했다는 것은 수치 스럽습니다. 말이된다! 감사! –

답변

1
newValue = Number(oldValue) + 1 

문자열을 int로 변환하는 것을 잊었을 것 같습니다.

+0

감사! 그리고 네, 다른 2 주석으로, 나는 문자열 값을 변환하는 것을 잊어 버렸습니다. 양식에서 읽은 데이터가 문자열 형식이라는 사실을 완전히 잊어 버렸습니다. –

1

이 시도 :이 일어나고

newValue = parseInt(oldValue) + 1; 

oldValue입니다 데이터 형식은 문자열이며 문자열에 지능을 추가 할 때 다음 출력은 또한 문자열이기 때문이다. 따라서 int 값을 추가하기 전에 숫자로 변환해야합니다.

+0

감사합니다! 그것은 작동합니다! –

1

CASE 1 :

var a=1; 
var b=2; 

alert(a+b);// RESULT WILL BE 3 

CASE 2 : 폼 또는 무언가의 값을 얻는 경우

var a='1'; 
var b=2; 

alert(a+b);// RESULT WILL BE 12 

, 당신의 값은 문자열로 처리됩니다 ('1'과 같이). 당신은 아래

alert(Number(a)+b);