«Если» условие Jquery - проверить пустые поля

0

Я пытаюсь подтвердить мои собственные два поля. Когда они пусты, я хотел бы показать сообщение.

Проблема в том, что условие "если" не выполняется должным образом, и я не знаю, почему.

Это HTML-код:

<div id="switchingform">
            <label for="currentsupplier">Who is your current supplier?</label>
            <input type="text" name="currentsupplier" id="currentsupplier"/><br />
            <span class="validateText" id="validateSupplier"><p>Please enter your      current supplier</p></span>

            <label for="postcode">What is your post code?</label>
            <input type="text" name="postcode" id="postcode"/><br />
            <span class="validateText" id="validatePostCode"><p>Please enter your post code</p></span>
</div>

И это код JQUERY:

$("#telecomBusNext").click(function(){ 
    if($("#currentsupplier").val().length < 1 || $("#postcode").val().length < 1) { 
        $("#validateSupplier").fadeIn(400);
        $("#validatePostCode").fadeIn(400);
        return false;
    } else if($("#currentsupplier").val().length > 1 || $("#postcode").val().length < 1) {
        $("#validatePostCode").fadeIn(400);
        $("#validateSupplier").fadeOut(400);
        return false;  
    } else if($("#currentsupplier").val().length < 1 || $("#postcode").val().length > 1) {
        $("#validatePostCode").fadeOut(400);
        $("#validateSupplier").fadeIn(400);
        return false;  
    } else {
      $("#validateSupplier").fadeOut(400);
      $("#validatePostCode").fadeOut(400);
    }   
});  

Заранее спасибо.

  • 0
    Можете ли вы определить «не работает»?
  • 2
    Изменить || с && и это должно работать. Вы определяете два одинаковых условия в двух разных условных выражениях. Ваша логика неверна.
Показать ещё 3 комментария
Теги:
validation
if-statement
condition

2 ответа

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

Измените || с && и он должен работать. Вы определяете два одинаковых условия в двух разных условностях. Ваша логика неверна.

$("#telecomBusNext").click(function(){ 
    //THIS------------------------------------>   <--ALSO HERE ----------------->
    if($("#currentsupplier").val().length < 1 || $("#postcode").val().length < 1) { 
        $("#validateSupplier").fadeIn(400);
        $("#validatePostCode").fadeIn(400);
        return false;                                //<--AND HERE is the same----->
    } else if($("#currentsupplier").val().length > 1 || $("#postcode").val().length < 1) {
        $("#validatePostCode").fadeIn(400);
        $("#validateSupplier").fadeOut(400);
        return false;
     //AND THIS are the same when using || ----------> 
    } else if($("#currentsupplier").val().length < 1 || $("#postcode").val().length > 1) {
        $("#validatePostCode").fadeOut(400);
        $("#validateSupplier").fadeIn(400);
        return false;  
    } else {
      $("#validateSupplier").fadeOut(400);
      $("#validatePostCode").fadeOut(400);
    }   
}); 

Поскольку оба условных выражения включают в себя $("#currentsupplier").val().length < 1 и в случае с HERE оба включают $("#postcode").val().length < 1, если один из них true Jquery не знаю, какая из двух операций, отмеченных выше, должна быть запущена.

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

Вот созданный JSFiddle.

Дайте мне знать, если это то, что вам нужно.

  • 0
    Спасибо Стефанос, я сделал эту ошибку, и вы мне очень хорошо объяснили. Но теперь, когда я изменяю || с && в WordPress это не работает. Почему?
  • 0
    Можете ли вы сказать нам, на #telecomBusNext элемент #telecomBusNext вы нажимаете, и, возможно, я сделаю скрипку, чтобы показать вам, как это сделать.
Показать ещё 7 комментариев
0

Проблема с вашим кодом заключается в том, что вы используете || (OR), когда вы должны использовать && (AND).

Но почему это так сложно, проверяя все комбинации? Проверьте два поля отдельно, и это будет намного проще:

$("#telecomBusNext").click(function(){ 
    var supplierValid = $("#currentsupplier").val().length > 0;
    var postcodeValid = $("#postcode").val().length > 0;
    $("#validateSupplier").fadeToggle(!supplierValid);
    $("#validatePostCode").fadeToggle(!postcodeValid);
    return supplierValid && postcodeValid;
});
  • 0
    Спасибо, Бармар, но по-твоему ... что происходит с "возвратом ложного".
  • 0
    Упс, пропустил это. Смотрите обновленный ответ.
Показать ещё 2 комментария

Ещё вопросы

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