Я пытаюсь использовать JQuery, чтобы проверить, были ли заполнены все входы в форме. Зритель нажимает кнопку, и если входы были заполнены, происходит классный материал. Но если одно из полей не заполнено, зрителю необходимо получить специальное предупреждающее сообщение. Я думаю, что я почти понял это, но мне нужна помощь.
$(function() {
$("#btn_click").click(function() {
if( $("input").val() == 0 ) {
$("form").append('<span class=".warning">You didn\'t fill out all the fields!</span>');
}
else {
//Some cool stuff happens
}
});
});
Когда я не заполняю какие-либо данные, я получаю ожидаемое поведение с предупреждением. Это хорошо. Тем не менее, "классный материал" работает, если я заполняю первый вход и оставляю все остальные пустыми. Это плохо. Я хочу, чтобы предупреждение отображалось, если какой-либо из входов оставлен пустым. Как я могу заставить JQuery протестировать все входы?
Вы можете проверить это, используя:
if ($("input").length != $('input').filter(function () {
return $.trim(this.value)
}).length) {
/* not all inputs filled */
}
$(function() {
$("#btn_click").on('click',function(e) {
e.preventDefault();
$("input").each(function(){
if(!$(this).val()){
//error message
return false;
}else{
//remaining code
}
});
});
});
Вы можете добавить идентификатор к каждому элементу ввода, а затем с помощью проверки Jquery, если какой-либо из них пуст, тогда выведите сообщение об ошибке, иначе сделайте свой классный материал
$('input').val()
будет извлекать только значение первого ввода. Если вы хотите проверить все входные данные, вы должны проверить все входные данные с each
(просто пример, вы можете использовать другие вещи):
$('btn_click').on('click', function (e) {
e.preventDefault(e) ;
var allOk = true ;
$('input').each(function () { // Iterate over input
if (!$('input').val()) { // Don't check against 0
allOk = false ; // If the input isn't ok
}
}) ;
if (!allOk) {
// Warning message
}
else {
// Some cool stuff
}
}) ;
try $("input").filter(function(){return this.value==''}).length > 0
или bettter, поскольку вы уже используете jQuery, используйте некоторый сложный плагин проверки
.each()
.