如果文本框突然有值,如何启用按钮

时间:2014-02-24 07:13:37

标签: javascript jquery html

如果我的texbox突然充满了文字而没有点击文字框输入内容,那么任何人都可以帮助我禁用按钮吗。

我的问题是我的代码无法正常工作。有谁知道怎么做。

<form method="post">
<input type="text" name="name1" id="name1" class="number" />
<input type="text" name="name2" id="name2" class="number" />
<input type="submit" name="send" id="send" class="hey" value="one" disabled />
</form>

脚本代码:

<script>
$(document).ready(function () {
  $('.number').blur(function () {
        if ($.trim(this.value) == "") {
          $('#send').attr("disabled", true);
        }
      else {
            $('#send').removeAttr("disabled");
      }
    });
});
</script>

4 个答案:

答案 0 :(得分:3)

您可以使用输入,模糊和键盘事件的组合来保证安全:

$('.number').on('keyup blur input', function () {
    $('#send').prop("disabled", !$.trim(this.value));
});

演示:http://jsfiddle.net/pb9vw/

答案 1 :(得分:1)

$('.number').keyup(function () {
    if ($.trim(this.value) == "") {
      $('#send').addAttr('disabled');
    }
  else {
        $('#send').removeAttr('disabled');
  }
});

答案 2 :(得分:0)

使用keyup代替blurprop()代替attr()当输入获得焦点或焦点松散时,会触发模糊。 prop应该用于布尔属性,例如checked disabled等。

<强> Live Demo

$('.number').keyup(function () {
    if ($.trim(this.value) == "") {
      $('#send').prop("disabled", true);
    }
  else {
        $('#send').prop("disabled", false);
  }
});
  

从jQuery 1.6开始,.attr()方法为属性返回undefined   尚未设定。检索和更改DOM属性,例如   选中,选中或禁用表单元素的状态,使用   .prop()方法,reference

答案 3 :(得分:0)

如果您想确保仅在填充两个文本框时启用该按钮,则可以执行以下操作:

function doCheck() {
    var allFilled = true;
    $('input[type=text]').each(function () {
        if ($(this).val() == '') {
            allFilled = false;
            return false;
        }
    });
    $('input[type=submit]').prop('disabled', !allFilled);
}

$(document).ready(function () {
    $('input[type=text]').keyup(doCheck);
});

<强> Fiddle Demo