2011-12-18 53 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; 
    } 
); 
相关问题