2011-09-20 80 views
2

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

<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> 

回答

2

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

+0

如何禁用JavaScript的提交按钮? – cleanerupper

+1

把'$('#submitter')。attr('disabled',true);'放在你的javascript开头。 –

+0

酷,Laurent回答了我的回答,再加上一个如何去做的例子。 –

0

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

甚至谷歌这样做。

0

您可以使用<noscript>标签在页面上显示一个特殊的信息给没有启用javascript的用户。告诉他们,如果没有js,站点将无法完美运行,然后在服务器上进行验证。

1

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

当然,你会想在服务器端进行跟进,因为现在你只需禁用JS即可通过“复选框点击”按钮要求。

相关问题