Привет, У меня есть поле ввода, которое передает целое число...
Однако, когда я это делаю
parseInt($('#postCode').val());
Я теряю первую цифру, если полученное значение похоже на 0880. Я хочу передать все четыре цифры, но как целое.. возможно? В принципе, я хочу убедиться, что если
parseInt($('#postCode').val());
имеет три цифры, которые просто добавляют один дополнительный 0 спереди.
Если вам нужен начальный ноль, тогда он должен быть строкой. Просто не называйте parseInt
вообще. С большинством почтовых кодов, которые я видел, они представляют собой ряд цифр (или букв и цифр), но они не являются цифрами.
Если вы хотите использовать parseInt
чтобы удостовериться, что это число, вы можете добавить обратно начальный ноль; но опять же, это будет строка, а не число.
Например:
var str = String(parseInt($("#postCode").val(), 10));
while (str.length < 4) {
str = "0" + str;
}
(Обратите внимание на второй аргумент parseInt
: если вы используете parseInt
, вы почти всегда хотите сказать ему, какой базовый номер базы - использовать).
Вы очень близки к ответу. Прежде чем вы выполните parseInt
, вы можете добавить чек, число или нет. Используйте [$.isNumeric()][1]
чтобы проверить числовой тип, а затем, если он возвращает 3 цифры, просто добавьте 0 к вашему $("#postCode").val()
Будьте очень осторожны - в некоторых старых браузерах (pre ECMAScript 5) число, начинающееся с 0, интерпретируется как восьмеричное число parseInt
, что почти наверняка не то, что вы хотите.
Почему вы хотите сохранить его как целое число? Я бы сказал, что почтовый индекс/почтовый код не семантически представляет число, и поэтому строка более подходит.