jquery .trim() с текстовыми полями

В другом посте, который я сделал, кто-то объяснил, что для проверки пустых значений в текстовых полях и текстовых полях вы должны использовать.val() с $.trim для проверки пустых значений. Например,

if($.trim($("#textboxid").val()) == "") {
    //do something
}

Может кто-нибудь объяснить мне, почему мы должны что-то здесь обрезать? Есть ли в текстовых полях скрытые пробелы или возврат каретки?

3 ответа

Как и во многих вещах в JavaScript (и в программировании в целом), все дело в написании надежного и поддерживаемого кода. Этот код просто более терпим к ошибочному вводу пользователем. Если пользователь вставляет пробел и тут же забывает об этом, визуально он не сможет сказать. Это позаботится об этом сценарии, проверив, содержит ли ваше поле просто пробелы.

Однако это может не подходить для всех сценариев!

Кроме того, пока мы говорим о "надежном и поддерживаемом" коде, обязательно используйте явные операторы эквивалентности, а не тесты "истина / ложь":

$.trim($("#textboxid").val()) === ""

Обрезка такова, что если пользователь вставляет пробел, он не обрабатывает его как значение. Использование отделки с make значение
" " становиться "",

Это зависит от приложения, хочет ли кто-то обрезать текстовые поля или нет. В общем, это трудно увидеть и, следовательно, обнаружить.

Другие вопросы по тегам