JQuery проверить, если входной текст пустой не работает

0

У меня есть код jquery

if (($("#RdbDateRange").is(':checked'))
        && (!$("#CldrFrom").val())
        && (!$("#CldrTo").val())) {}else{}

RdbDateRange - ID для переключателя. CldrFrom - это идентификатор для ввода текста. CldrTo - это идентификатор для ввода текста.

Я хочу что-то сделать, когда радио выбрано, и оба входа не пустые.

но этот код попадает внутрь if, даже когда входы пусты.

почему пожалуйста?

  • 0
    Пустые строки определенно false в логическом контексте. Попробуйте применить $.trim() для фильтрации пробелов. Обратите внимание, что вам не нужно явно проверять пустую строку или использовать length , поскольку все ответы, которые вы получили до сих пор, хотели бы, чтобы вы поверили.
Теги:

6 ответов

2
Лучший ответ

Использовать свойство .length, Для пробелов Вы можете использовать $.trim()

if ($("#RdbDateRange").is(':checked')
    && $.trim($("#CldrFrom").val()).length
    && $.trim($("#CldrTo").val()).length){}else{}

ИЛИ,

Вы также можете использовать .trim(), Примечание: эта функция поддерживается в IE9+

if ($("#RdbDateRange").is(':checked')
    && $("#CldrFrom").val().trim().length
    && $("#CldrTo").val().trim().length){}else{}

РЕДАКТИРОВАТЬ

В соответствии с требованием the radio is selected and both of the inputs not empty

Вам не нужно ! , таким образом удалите его

  • 0
    может быть, на входе есть пробелы, просто пробелы. ?
  • 0
    может есть функция обрезки?
Показать ещё 4 комментария
0

Замените !$("#CldrFrom").val() с if($("#CldrFrom").val().trim() !="")

  • 0
    это все еще входит в if
0

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

&& (!$("#CldrTo").val().length)) {
//Text is not empty....code here...
}
0

Вы должны сравнить в if

 if (($("#RdbDateRange").is(':checked'))
    && (!$("#CldrFrom").val()=="something")
    && (!$("#CldrTo").val()!="")) {}else{}
0

Попробуй это

if (($("#RdbDateRange").is(':checked'))
        && ($("#CldrFrom").val() !='')
        && ($("#CldrTo").val() !='')) {}else{}

DEMO

0

.val() не возвращает true/false. Вы должны проверить для .val()length == 0 вместо !val()

if (($("#RdbDateRange").is(':checked'))
        && (!$.trim($("#CldrFrom").val()).length == 0)
        && (!$.trim($("#CldrTo").val()).lenght == 0)) {}else{}
  • 0
    так что мне делать, пожалуйста?
  • 0
    может быть, это просто пробелы. Я имею в виду белые пробелы без фактических данных
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню