2015-01-27 3 views
0

У меня есть форма, в которой я бы хотел, чтобы все поля были заполнены. Если поле щелкнуто и не заполнено, я бы хотел показать, что в bootstrap есть класс предупреждения.Проверьте, не вставляются ли входы с помощью jQuery перед отправкой

Вот мой код:

$('#registration-form input').blur(function() 
{ 
    if(!$(this).val()) { 
     $(this).parents('li').addClass('has-warning'); 
    } 
}); 

Что я делаю неправильно?

Вот jsfiddle http://jsfiddle.net/f7gsgy93/

+0

Что такое ожидаемое поведение? –

+0

@ Ionica для применения бутстрапа имеет класс предупреждения, который дает ввод красной границы –

+0

Вы также можете указать HTML-код? Может быть, JSFiddle? –

ответ

0
$('#registration-form input').blur(function() { 

    if ($(this).val() == '') { 

     $(this).parents('li').addClass('has-warning'); 

    } 

}); 
+0

Это не имеет смысла, поскольку '!" "' is 'true'. –

+0

Что не имеет смысла? Если значение активного ввода пуст, оно применит класс. – Slime

+0

это тоже не работает. в отладчике кажется, что он никогда не попадает в оператор if. –

2

Вы должны поймать submit событие на форме. Если вход недействителен, то предотвратите поведение по умолчанию.

$("form").on("submit", function() { 
    var isInvalid = false; 
    $("input", this).each(function() { 
     if (!$(this).val()) { 
      isInvalid = true; 
     } 
    }); 
    if (isInvalid) { 
     return false; 
    } 
}); 

Если вам нужно только поймать событие размытия, просто сделайте это!

$(document).ready(function() { 
 
    var $error = $(".alert-danger"); 
 
    $("form input").on("blur", function() { 
 
    if (!$(this).val()) { 
 
     $error.removeClass("hide").text("No value"); 
 
    } else { 
 
     $error.addClass("hide"); 
 
    } 
 
    }); 
 
});
@import url("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"> 
 
    <form action=""> 
 
    <input type="text" class="form-control" placeholder="Text input"> 
 
    <div class="errors"> 
 
     <div class="alert alert-danger hide"></div> 
 
    </div> 
 
    </form> 
 
</div>

+0

Я не хочу представлять. Если я нажму в текстовое поле, а затем, если вы щелкнете, он будет проверять, является ли он пустым или нет. –

+0

@CamSonaris См. Редактирование. Обратите внимание, что вы должны убедиться, что элементы присутствуют на странице, когда вы добавляете ровный слушатель. –

Смежные вопросы