Подтвердить что ты не робот

ParseInt с jQuery

Может кто-нибудь помочь мне разобраться, почему следующий код jQuery не работает? Я хочу вернуть целое число из пользовательского ввода.

var test = parseInt($("#testid"));

Спасибо и до свидания!

4b9b3361

Ответ 1

var test = parseInt($("#testid").val(), 10);

Вы должны сказать, что хотите, чтобы value вводимого вами таргетинга.

А также всегда указывайте второй аргумент (radix) на parseInt. Он пытается быть слишком умным и автоматически определять его, если он не предоставлен, и может привести к неожиданным результатам.

Предоставление 10 предполагает, что вы хотите получить номер базы.

Ответ 2

Два вопроса:

  • Вы передаете оболочку jQuery этого элемента в parseInt, что не то, что вы хотите, поскольку parseInt вызовет toString на нем и вернется "[object Object]". Вы должны использовать val или text или что-то (в зависимости от того, что представляет собой элемент), чтобы получите нужную строку.

  • Вы не говорите parseInt, какой радикал (номер базы) он должен использовать, что ставит вас под угрозу нечетного ввода, давая вам нечетные результаты, когда parseInt угадывает, какой радикал использовать.

Исправить, если элемент является полем формы:

//                               vvvvv-- use val to get the value
var test = parseInt($("#testid").val(), 10);
//                                    ^^^^-- tell parseInt to use decimal (base 10)

Исправить, если элемент является чем-то другим, и вы хотите использовать текст внутри него:

//                               vvvvvv-- use text to get the text
var test = parseInt($("#testid").text(), 10);
//                                     ^^^^-- tell parseInt to use decimal (base 10)

Ответ 3

var test = parseInt($("#testid").val());