Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ошибка, в чём проблема? (https://javascript.ru/forum/misc/18795-oshibka-v-chjom-problema.html)

DeMaGe 15.07.2011 18:20

Ошибка, в чём проблема?
 
Выполняю такой код
var wallStrR = $('input').val()+1;
alert(wallStrR);
Выдает "11", а должно быть "2", в input значение: 1
В чем проблема?

ваый 15.07.2011 18:35

потому что $('input').val() это строка, а не число
parseInt($('input').val(), 10) + 1

trikadin 15.07.2011 18:36

Потому что значением input'a является строка (где же ты, с++... Люди, пишущие на тебе, это понимают...).

alert('1' + 1); // 11
alert(1+1); //2

Делайте так:

var wallStrR = + $('input').val()+1;
alert(wallStrR);

trikadin 15.07.2011 18:40

ваый, лучше parseFloat (ну а вдруг там что-то десятичное будет), и основание оказывать не обязательно, так как:
Цитата:

Если radix не указан или равен 0, то javascript предполагает следующее:

Если входная строка начинается с "0х", то radix = 16
Если входная строка начинается с "0", то radix = 8. Этот пункт зависит от реализации и в некоторых браузерах (Google Chrome) отсутствует.
В любом другом случае radix=10

ваый 15.07.2011 18:49

да, trikadin, я в курсе, что по умолчанию основание 10.
однако, если есть вероятность того, что строка может начинаться с 0, то все же лучше самому указывать. скажем, когда берем значение из селекта в котором id месяцев в виде 01, 02, 03, ..., 10, ...
я просто подумал, что новичка десятка подвигнет почитать документацию по функции :)

trikadin 15.07.2011 18:59

Ну, да, логично)

Цитата:

Сообщение от ваый
я просто подумал, что новичка десятка подвигнет почитать документацию по функции

Мечты, мечты...:haha:


Часовой пояс GMT +3, время: 03:27.