2013-02-11 117 views
0

我想实现一些jQuery的,基本上说:“如果这个文本字段填入然后禁用提交按钮,这样的形式不能发送/提交”禁用表单提交按钮,如果文本字段填写

所以到目前为止,我想出了这一点,但它不工作

​​

当我填写表格,包括我不应该仍然得到提交表单字段中的文本,我在做什么错?

谢谢

+1

我的经验说,它应该是反过来的:如果文本字段为空* *,那么提交按钮被禁用。 – VisioN 2013-02-11 13:51:59

+0

不需要在这里,该字段是隐藏的,所以如果它是由一个机器人填充,然后我不想提交表格 – Richlewis 2013-02-11 13:53:05

+0

这仍然没有任何意义。通常包含隐藏表单字段的要点是用于将_some_值与表单一起传输。你确定你想完全空?如果是这样,那么为什么要把它放在第一位呢? – aroth 2013-02-11 13:54:15

回答

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); 
    }); 
}); 
+0

这将工作的隐藏领域? – Richlewis 2013-02-11 13:54:19

+2

当输入为空时,将其扩展为重新启用提交按钮可能是一个好主意。 – thomasfedb 2013-02-11 13:54:49

+0

已更新它@thomasfedb – jeroenvisser101 2013-02-11 13:56:10

1

我建议你在用户进入东西#inputValue领域绑定一个keyup事件每次做检查:

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

请尝试使用此代码。

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

你实际上没有解决问题。 – 2013-02-11 16:29:48

1

由于您使用的是hidden场可能会更好的change绑定事件:

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

感谢您的回答,尽管我仍然可以发送电子邮件,因此无法工作 – Richlewis 2013-02-11 14:03:45

相关问题