Отключить кнопку отправки, если поля не заполнены с помощью jQuery - PullRequest
7 голосов
/ 27 августа 2009

Как отключить кнопку отправки, если одно или несколько полей ввода пусты?

Моя попытка псевдокода

if ( $("input:empty") ) {
    $("input:disabled") 
}
else 
  // enable the ask_question -button

Я читал эти статьи, не находя правильного решения

  1. Официальные документы о пустых : это похоже на то, что не имеет значения, так как ищет все входные поля
  2. ветка об отключенном -feature в jQuery : это кажется уместным
  3. , чтобы иметь возможность тестировать jQuery Firefox / терминал : получить среду тестирования мне очень помогло бы

В данный момент я использую следующий код. Он содержит одну ошибку о персонаже ;, но я не могу его найти.

# 1

$(document).ready(function(){
    $("#ask_form").validate(){
        rules: {
            username {
                required: true,
                minlenghth: 2
            },
            email: {
                required: true;
                minlength: 6
            },
            password {
                required: true,                                                                                                                                    
                minlength: 6
            }
        } 
    });
}

# 2 Код Медера

Я немного изменил код Медера. Она постоянно отключает кнопку send, поэтому она также содержит ошибку.

$(document).ready(function(){
    var inputs = $('input', '#ask_form'), empty = false;
    // can also use :input but it will grab textarea/select elements and you need to check for those..

    inputs.each(function() {
        if ( $(this).val() == '' ) {
            empty = true;
            return;
        }
    });

    if ( empty ) {
        $('.ask_question').attr('disabled', 'disabled'); // or true I believe.
    }
});

Ответы [ 4 ]

10 голосов
/ 27 августа 2009
var $submit = $("input[type=submit]");
if ( $("input:empty").length > 0 ) {
   $submit.attr("disabled","disabled");
} else {
   $submit.removeAttr("disabled");
}
2 голосов
/ 27 августа 2009
0 голосов
/ 28 августа 2009

Отсутствует закрытие, попробуйте это например # 1:

$(document).ready(function(){
    $("#ask_form").validate(){
        rules: {
            username {
                required: true,
                minlenghth: 2
            },
            email: {
                required: true;
                minlength: 6
            },
            password {
                required: true,                                                                                                                                    
                minlength: 6
            }
        } 
    });
});
0 голосов
/ 27 августа 2009
var inputs = $('input', 'form#foo'), empty = false;
// can also use :input but it will grab textarea/select elements and you need to check for those..

inputs.each(function() {
    if ( $(this).val() == '' ) {
        empty = true;
        return;
    }
});

if ( empty ) {
    $('#el').attr('disabled', 'disabled'); // or true I believe.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...