2011-07-21 17 views
1

私はHTMLフォームを作成するためにPHPを使用しています。
フォームには3つのラジオボタンと送信ボタンがあります。
フォームの初期状態では、どのラジオボタンもチェックされていません。
ラジオボタン以外がチェックされている場合は、フォームを送信しないようにします。
これを行う方法はありますか?私はPHPコードの一部を添付しました。ラジオボタンがチェックされていない場合にフォームを送信しないでください。

for($i=0; $i<$nChoices; $i++) { 
$Text='<input type="radio" name="answer" value="' . $IdChoices[$i] . '"'; 
$Text.="> ". $Choices[$i] . "</input>"; 
$choiceoutput.= $Text."<br /><br />"; 
} 

ありがとう!

答えて

1

このJavaScriptは、単純なクライアント側の検証のために使用することができます。 クライアント側でのみ検証するのは安全だとは考えられませんが、ユーザーが実際に値を選択したかどうかを確認することが目的の場合は となります。それ以外の場合は、さらに検証がPHPスクリプトで行われている必要があります。

<script type="text/javascript"> 
function validate() 
{ 
    var retval = false; 
    for (var i=0; i < document.myForm.r.length; i++) 
    { 
    if (document.myForm.r[i].checked) 
    { 
     retval = true; 
    } 
    } 

    return retval; 
} 
</script>

これを動作させるためのシンプルなフォーム。上記

<form name="myForm" action="page.php" onsubmit="return validate()" method="post"> 
<input type="radio" id="r"> 
<input type="radio" id="r"> 
<input type="submit" value="ok"> 
</form>
2

いくつかのボタンがチェックされている場合は、JavaScriptの検証、コミットの代行およびチェックの使用をお勧めします。 しかし、サーバー側でも検証する必要があることを忘れないでください。なぜなら、JSは省略される可能性があるからです。

あるいは、広いブラウザのサポートは、あなたの問題ではない場合 - HTML5は、フォーム制約の検証をサポートしています(https://developer.mozilla.org/en/HTML/HTML5/Forms_in_HTML5

+0

+1、サーバー側のビットを忘れないでください;) – Jeroen

0
<input type="submit" value="Submit" name="B1" disabled="disabled"> 

障害者submitボタンの一例です。ユーザーがチェックするチェックボックスをチェックすると、JavaScriptを使用して、[送信]ボタンからdisabled = "disabled"属性を削除する必要があります。

http://www.techchorus.net/disable-and-enable-input-elements-div-block-using-jquery

あなたは多くの方のロジックを理解してもらう必要がある読書のビットがあります! :)

関連する問題