У меня есть две кнопки, и между ними есть форма. Одна кнопка говорит «+», а другая «-». Я пытаюсь сделать кнопки увеличения / уменьшения, но это не работает должным образом. Кажется, что сложение вызывает проблему, когда приращение не происходит, а вместо этого происходит конкатенация. Например, когда значение формы равно 0 и нажата кнопка «+», оно меняет значение 0 на 01. Мой код JavaScript имеет

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

Когда oldValue равно 01 и снова увеличивается, возвращается 011. Почему это не увеличение, а объединение 1 в конце? Удивительно, но декремент отлично работает с тем же кодом, за исключением того, что у меня есть минус, где есть плюс.

Как вы можете увеличить значение формы в мире? а кто-нибудь может объяснить, почему "+1" не работает?

0
Wang Dang 13 Янв 2017 в 07:43

3 ответа

Лучший ответ
newValue = Number(oldValue) + 1

Я думаю, что вы забыли преобразовать строку в Int.

1
almost a beginner 13 Янв 2017 в 04:47

Попробуй это:

newValue = parseInt(oldValue) + 1;

Это происходит потому, что тип данных oldValue является строкой, и когда вы добавляете Int к строке, то и результат также является строкой. Таким образом, вы должны преобразовать его в число, прежде чем добавить в него некоторое значение типа int.

1
Mayank Pandeyz 13 Янв 2017 в 04:49

ДЕЛО 1:

var a=1;
var b=2;

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

ДЕЛО 2:

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

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

Если вы получаете значения из формы или чего-то еще, ваша ценность будет обрабатываться как строка (например, «1»). Вы можете конвертировать, если в число / Int Используя ключевое слово Number, как показано ниже

alert(Number(a)+b);
1
Justin 13 Янв 2017 в 04:55