2011-12-18 9 views
0

チェックボックスが選択されていない限り、送信を無効にする方法を説明する他にもいくつか質問があります。私はそれを簡単に達成することができます。送信ボタンを無効にしてチェックボックスをオンにしない限り起動アラート

私が抱えている問題は、チェックボックスをオフにしている間に送信がクリックされたときに警告ボックスを発することです。私はユーザーに "最初にオプションを選択する必要があります!"と伝えたいと思います。提出する前に

私が試した多くのバージョンの1つです。 (これは簡略化されています)Thanks Guys!

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

をあなたのトンをありがとうございます。あなたは返品虚偽の使用について私に簡単な説明を教えてもらえますか? – htmelvis

+0

最後の2番目の最後の文は、単に}}を必要とします。 – htmelvis

+0

@ user1104850確かに。 onclickメソッドから "return false"を実行すると、サーバーにポストバックする前の各Js関数をブロックすることができます。 (またはクリックの早い段階)。一度あなたがfalseを返す - それはサーバー側に続かない。関数は1つのreturn文しか使用できないことに注意してください。すなわち:return 1; 2を返します。 - 常に1を返します。 –

0

これは動作するはずです:

$(document).ready(function(){ 

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