Как я могу использовать jQuery, чтобы проверить все входные данные на наличие пробелов?

0

Я пытаюсь использовать 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 протестировать все входы?

Теги:
validation
input

5 ответов

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

Вы можете проверить это, используя:

if ($("input").length != $('input').filter(function () {
        return $.trim(this.value)
    }).length) {
    /* not all inputs filled */
}
  • 0
    Спасибо, это работает для моих целей!
2
$(function() {
$("#btn_click").on('click',function(e) {
    e.preventDefault();
    $("input").each(function(){
        if(!$(this).val()){
           //error message
            return false;
        }else{
           //remaining code
       }
    });
  });
});  
  • 0
    Это почти работает, но теперь, когда я набираю что-то в первом вводе, оставляю другие пустыми и нажимаю кнопку, появляется сообщение об ошибке И остальной код запускается. Я попытался дать все входные данные для этой конкретной формы класса в HTML и сделать $ ('. Required'), то же самое поведение.
1

Вы можете добавить идентификатор к каждому элементу ввода, а затем с помощью проверки Jquery, если какой-либо из них пуст, тогда выведите сообщение об ошибке, иначе сделайте свой классный материал

  • 0
    Я бы сделал это, за исключением того, что я пишу сценарий, который будет действовать в зависимости от того, какой HTML-документ находится на сайте. Количество элементов ввода изменяется в зависимости от того, какой HTML-документ является активным, поэтому мне действительно нужно каким-то образом проверить, какие элементы ввода находятся там.
0

$('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
    }
}) ;
  • 0
    Я попробовал этот код, и он ведет себя так же, как код, с которого я начал пост. Кажется, только для проверки первого ввода. Когда я заполняю первый ввод, оставляю остальные пустыми и нажимаю на кнопку, «классные вещи» все еще происходят.
0

try $("input").filter(function(){return this.value==''}).length > 0

или bettter, поскольку вы уже используете jQuery, используйте некоторый сложный плагин проверки

Ещё вопросы

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