2011-12-18 56 views
0

此處還有其他一些問題,告訴您如何禁用提交,除非選中了複選框。我可以輕鬆實現。禁用提交按鈕並啓動警報除非選中複選框

我遇到的問題是在未選中複選框的情況下單擊提交時觸發警告框。我想告訴用戶「您必須先選擇一個選項!」提交之前。

這是我嘗試過的很多版本之一。 (這簡化了下來)謝謝你們!

<!DOCTYPE HTML> 
<html> 
<head> 
<title></title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> 
</script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 

     $("form").submit(function(e){ 
     if($("#terms").not(':checked')){ 
      e.preventDefault(); 
      alert('Please check the first checkbox!'); 
     } 
         return true; 
    } 
}); 



}); 
</script> 
</head> 
<body> 
<form method="post" action="http://google.com"> 
    <input type="checkbox" name="cb1" id="terms" value="a" /> A<br /> 

    <!-- disable our submit button by default --> 
    <input type="submit" id="submitButton" value="submit"/> 
</form> 
</body> 
</html> 

回答

1
$(document).ready(function() 
{ 
    $("form").submit(function (e) 
    { 
     if ($("#terms:not(:checked)").length > 0) 
     { 
      e.preventDefault(); 
      alert('Please check the first checkbox!'); 
      return false; 
     } 

    }); 
}); 
+0

謝謝你一噸。你能給我任何關於使用return false的簡單解釋嗎? – htmelvis 2011-12-18 20:23:13

+0

倒數第二個結束語句只需要一個}); – htmelvis 2011-12-18 20:25:28

+0

@ user1104850當然。如果您通過onclick方法執行「返回false」,每個Js函數在發回服務器之前都會被阻止。 (或點擊的較早階段)。一旦你返回錯誤 - 它不會繼續到服務器端。記住一個函數只能使用1個return語句。即:返回1;返回2; - 將永遠返回1. – 2011-12-18 20:30:45

0

這應該工作:

$(document).ready(function(){ 

     $("form").submit(function(e){ 
     if(!$("#terms").is(':checked')){ 
      e.preventDefault(); 
      alert('Please check the first checkbox!'); 
     } 
         return true; 
    } 
); 
相關問題