2012-02-21 10 views
2

私は単純にjavascriptの検証の周りに私の頭を得ることはできません。私はチュートリアルを見てきただけで私には分かりません。誰かがチェックボックスにどのように検証を加えることができるかについて、ステップガイドで簡単なステップを教えてください。これは私のフォームです:チェックボックスの検証

<form name="form1" method = "post"> 

<input name="Conservatives" type="checkbox" value="Conservatives" /> Conservative 

<input name="Liberal Democrats" type="checkbox" value="Liberal Democrats" /> Liberal Democrats 

<input name="Labour" type="checkbox" value="Labour" /> Labour 


</form> 

私は、ユーザーが少なくとも2つのチェックボックスを選択するようにします。検証は、私はその後、データベースに送信するためにPHPを使用して値を取るもののクライアント側から行う必要がありますか? 助けてください。

答えて

0

あなたのコメントに基づいて、少なくとも2つのチェックボックスがチェックされていることを確認しますか?私は彼らにすべて同じ名前与える:

<input name="partyAffiliation" type="checkbox" value="Conservatives" /> Conservative 
<input name="partyAffiliation" type="checkbox" value="Liberal Democrats" /> Liberal Democrats 
<input name="partyAffiliation" type="checkbox" value="Labour" /> Labour 

次にループして、チェックされているどのように多くの参照してください。 document.getElementsByNameにチェックボックスが表示され、それぞれのチェックボックスにはcheckedというプロパティが設定されます。

var allCbs = document.getElementsByName("partyAffiliation"); 
var numChecked = 0; 
for(var i = 0, max = allCbs.length; i < max; i++) 
    if (allCbs[i].checked) 
     numChecked++; 

if (numChecked < 2) 
    alert("Select at least two parties!"); 

私はあなたのプロジェクトの詳細を知らないが、私はこのライブラリを使用すると、あなたがに反対していない何かである場合jQueryのは、上記のコードは非常に簡単になりますことを言及だけでしょう:共に応答して

var numChecked = $("input[name='partyAffiliation']:checked").length; 

if (numChecked < 2) 
    alert("Select at least two parties!"); 

EDIT

同じ名前の複数の入力があることを心配しないでください。サーバー側のコードには、その名前に関連付けられたすべての(選択された)値のコンマ区切りのリストを受け取る必要があります。したがって、3つのチェックボックスをすべてチェックすると、以下のように表示されます。

enter image description here

+0

名前が同じであれば、サーバー側のチェックボックスをどのように区別しますか? –

+0

私は少なくとも2つのチェックボックスを選択したいと思う。検証は、私はその後、データベースに送信するためにPHPを使用して値を取るもののクライアント側から行う必要がありますか? –

+0

@MohemaBurhan - ok、anyCheckedの代わりに、チェックされている数の合計を維持し、2つを比較します。 –

0

あなたが実際にラジオボタン、チェックボックスではないにしたいように見えます。

その場合は、この使用します。次に

<form action="" method="post"> 
    <label><input type="radio" name="vote" value="Conserv" /> Conservative</label><br /> 
    <label><input type="radio" name="vote" value="LibDem" /> Liberal Democrats</label><br /> 
    <label><input type="radio" name="vote" value="Labour" /> Labour</label><br /> 
</form> 

を、あなたが持っているものは何でも、サーバー側のコードでは、vote POST変数は、ユーザーの選択に応じて"Conserv""LibDem"または"Labour"のいずれかを持っています。

+0

私はユーザに少なくとも2つのチェックボックスを選択させたいと思います。検証は、私はその後、データベースに送信するためにPHPを使用して値を取るもののクライアント側から行う必要がありますか? –

関連する問題