输入文本为空时禁用输入类型提交

时间:2012-12-28 11:08:51

标签: javascript jquery

我有这段代码:

setInterval(function(){
  if($("#username_error").val() == "" && $("#password_error").val() == "" && $("#email_error").val() == ""){
    $('input[type="submit"]').removeAttr('disabled');
  } else {
    $('input[type="submit"]').attr('disabled','disabled');
  }
}, 10);

如果三个div没有错误,我需要禁用提交按钮。当我运行此代码时,没有任何反应。但是,如果我执行alert()if语句正确运行。我在这里做错了什么?

3 个答案:

答案 0 :(得分:1)

这样做:

$('input[type="submit"]').attr('disabled','disabled');    

$('input[type="text"]').change(function(){
   if($("#username_error").val() == "" && $("#password_error").val() == "" && $("#email_error").val() == "") {
       $('input[type="submit"]').removeAttr('disabled');
   } else {
       $('input[type="submit"]').attr('disabled','disabled');
   }
});

<强> DEMO

答案 1 :(得分:0)

使用jQuery keyup事件。

$('input').keyup(function(){
       if($("#username_error").val() == "" && $("#password_error").val() == "" && $("#email_error").val() == "") {
         $('input[type="submit"]').attr('disabled',true);
       } else {
         $('input[type="submit"]').attr('disabled', false);
       }
    });

答案 2 :(得分:0)

另一种解决方案......

$(document).ready(function () {
    $('button').attr("disabled", true); // starts disabling the button
    $('input').on("blur", null, function () {
        if ($("#username_error").val() != "" && $("#password_error").val() != "" && $("#email_error").val() != "") {
            $("#botao").attr("disabled", false);
        } else {
            $("#botao").attr("disabled", true);
        }
    });
});