jQuery表单接受复选框,禁用提交按钮

时间:2011-09-20 18:13:46

标签: javascript jquery forms validation checkbox

我有一个表单,只有在选中复选框时才会启用提交按钮。问题是没有JavaScript的人永远无法启用提交按钮。这个问题的最佳解决方案是什么?

<script src="http://www.lenticularpromo.com/v/vspfiles/js/jquery-1.6.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$('#accept-box').click(function(){
$('#submitter').attr('disabled',!this.checked);
});
$('#myform').submit(function(){
return $('#accept-box').attr('checked');
});
});
</script>

<form id="myform" class="accept" action="http://dropbox.yousendit.com/KefengXu11610470" method="GET">
<label>I promise to include all required information along with my artwork submission</label>
<input id="accept-box" name="accept" type="checkbox" value="0">
<br>
<input id="submitter" class="submit" type="submit" name="submit" value="Continue to artwork upload" disabled="disabled">
</form>

4 个答案:

答案 0 :(得分:2)

在我看来,最好的选择是在HTML中启用提交按钮并使用JavaScript禁用它。然后在服务器端验证复选框已被选中(即使您在客户端执行,也应始终验证服务器端,可以禁用或绕过JavaScript)。

答案 1 :(得分:1)

请勿对标记中的disabled属性进行硬编码。相反,通过javascript / jquery添加该属性。这样,如果你没有JS,它永远不会被禁用,但如果你有JS,你的逻辑就适用了。

当然,您需要在服务器端跟进,因为现在您可以禁用JS以超越“复选框点击”按钮要求。

答案 2 :(得分:0)

最好的方法是告诉他们启用JS或仅在服务器端检查它。

甚至谷歌都会这样做。

答案 3 :(得分:0)

您可以使用&lt; noscript&gt;页面上的标签,为没有启用JavaScript的用户显示特殊消息。告诉他们如果没有js,网站将无法理想地运行,然后在服务器上进行验证。