как отключить кнопку отправки с помощью jquery - PullRequest
34 голосов
/ 06 августа 2009

У меня есть простая форма для проверки значения почтового индекса, введенного пользователем по переменной,

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

  <form id="post_code">
        <input name="textfield" type="text" id="postcode" size="14" maxlength="8" />
        <input type="image" id="submit_postcode" src="images/B_go.png" alt="Submit Postcode" width="59" height="24" border="0" />
  </form>


$(function() {

   $('form#post_code').submit(function() {

    var entered_post_code = $('form#post_code input#postcode').val();
    var post_code = "CV";
    if (entered_post_code == post_code) {
        alert("post code is ok");
        return true;
    }else {
        alert("post code is not ok");
        return true;
    }
    return false;   
});

});

Ответы [ 6 ]

74 голосов
/ 06 августа 2009

W3C рекомендует установить для этого атрибута значение disabled = "disabled", поэтому:

$('#submit_postcode').attr('disabled', 'disabled');

Повторное включение можно сделать, удалив атрибут:

$('#submit_postcode').removeAttr('disabled');

Установка атрибута на любое значение приводит к его отключению, даже .attr ('disabled', 'false'), поэтому его необходимо удалить.

4 голосов
/ 06 августа 2009
$('#submit_postcode').attr('disabled', 'disabled');
1 голос
/ 30 апреля 2011

Этот код я использую для отключения или повторного включения элемента управления:

function handleControlDisplay(className, foundCount, checked) {



    var button = jQuery(className);



    if (foundCount > 0 && foundCount == checked) {

        // enable

        button.removeAttr("disabled");

    }

    else {

        // set the disabled attribute

        button.attr("disabled", "true");

    };

}
1 голос
/ 06 августа 2009

Если проверка совпадает, вы возвращаете истину, и если она не совпадает ... вы также возвращаете истину. Линия return false никогда не достигается.

Возможно, вы захотите изменить одно из истинных значений на false и исключить строку за пределами блока if / else.

0 голосов
/ 06 августа 2009
var entered_post_code = $('form#post_code input#postcode').val();
// rewrite as
var entered_post_code = $("#post_code input[id=postcode]").val();

Вы должны вернуть false, если почтовый индекс не в порядке. нет

вероятно, ваш, если он никогда не решается как истинный, и всегда возвращается как ложный Использование функции submit () является правильным.

0 голосов
/ 06 августа 2009
//disable
$('#submit_postcode').attr('disabled', true);

//re-enable
$('#submit_postcode').removeAttr('disabled');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...