如果填写了文本字段,请禁用表单提交按钮

时间:2013-02-11 13:50:19

标签: javascript jquery validation

我正在尝试实现一些基本上说“如果填写此文本字段然后禁用提交按钮以便无法传递/提交表单”的Jquery

到目前为止,我已经想出了这个,但它无法正常工作

$(document).ready(function(){
$this = $("#inputValue");
 if($this.val().length>0){ 
$('input[type=submit]').attr('disabled', 'disabled');
 }  
});

当我填写表格并在字段中包含文字时,我不应该仍然提交表格,我做错了什么?

由于

4 个答案:

答案 0 :(得分:3)

您的代码仅在运行时运行一次。之后,它不再被检查。

$(document).ready(function (){
  $("#inputValue").on('change', function (){
    if($(this).val().length > 0){
      $('input[type=submit]').attr('disabled', 'disabled');
    } else {
      $('input[type=submit]').removeAttr('disabled');
    }
  });
});

或者,正如@thomasfedb所说:

$(document).ready(function (){
  $('#inputValue').on('change', function() {
    $("input[type=submit]").prop('disabled', $(this).val().length > 0);
  });
});

答案 1 :(得分:1)

我建议您在每次用户输入#inputValue字段时绑定keyup事件进行检查:

$(document).ready(function() {
    $("#inputValue").on("keyup", function() {
        $("input[type=submit]").prop("disabled", !!$.trim(this.value).length);
    }).trigger("keyup");
});

答案 2 :(得分:1)

由于您使用的是hidden字段,因此最好绑定change事件:

$('#inputValue').on('change', function() {
  $('input[type="submit"]').prop('disabled', this.value.length > 0);
}).change();

答案 3 :(得分:-2)

尝试使用此代码。

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