2011-09-20 101 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即可通過「複選框點擊」按鈕要求。

相關問題