У меня есть код jquery
if (($("#RdbDateRange").is(':checked'))
&& (!$("#CldrFrom").val())
&& (!$("#CldrTo").val())) {}else{}
RdbDateRange
- ID для переключателя. CldrFrom
- это идентификатор для ввода текста. CldrTo
- это идентификатор для ввода текста.
Я хочу что-то сделать, когда радио выбрано, и оба входа не пустые.
но этот код попадает внутрь if, даже когда входы пусты.
почему пожалуйста?
Использовать свойство .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
Вам не нужно !
, таким образом удалите его
Замените !$("#CldrFrom").val()
с if($("#CldrFrom").val().trim() !="")
if
Попробуй это:
&& (!$("#CldrTo").val().length)) {
//Text is not empty....code here...
}
Вы должны сравнить в if
if (($("#RdbDateRange").is(':checked'))
&& (!$("#CldrFrom").val()=="something")
&& (!$("#CldrTo").val()!="")) {}else{}
Попробуй это
if (($("#RdbDateRange").is(':checked'))
&& ($("#CldrFrom").val() !='')
&& ($("#CldrTo").val() !='')) {}else{}
.val()
не возвращает true/false. Вы должны проверить для .val()length == 0
вместо !val()
if (($("#RdbDateRange").is(':checked'))
&& (!$.trim($("#CldrFrom").val()).length == 0)
&& (!$.trim($("#CldrTo").val()).lenght == 0)) {}else{}
false
в логическом контексте. Попробуйте применить$.trim()
для фильтрации пробелов. Обратите внимание, что вам не нужно явно проверять пустую строку или использоватьlength
, поскольку все ответы, которые вы получили до сих пор, хотели бы, чтобы вы поверили.