PHPを使用してクイズWebアプリケーションを作成しています。各質問は個別の<label>
で構成され、radio buttons
を使用してユーザーが回答を選択できるようにする4つの選択肢があります。 1つの質問に対する現在のHTMLは次のようになります。
<label for="349">What is my middle name?</label>
<br>
<input id="349" type="radio" value="1" name="349">Abe
<br>
<input id="349" type="radio" value="2" name="349">Andrew
<br>
<input id="349" type="radio" value="3" name="349">Andre
<br>
<input id="349" type="radio" value="4" name="349">Anderson
<br>
ユーザーにラジオボタンに関連付けられたテキストをクリックするオプションを提供したいと思います。現時点では、ユーザーはラジオボタン自体をクリックするだけです。 -これは非常に面倒な作業だと思います。
選択テキストをクリックして特定のラジオボタンの選択を選択できない と、タグのfor
属性とid
属性を一致させるための提案ポイントを読みました。私はこれをしましたが、まだ機能しません。
私の質問は:ラジオボタン自体を選択できるだけでなく、<input type="radio">
オブジェクトのテキストをクリックできるようにしたいです。私はこれについて前に読んだことがありますが、私の問題の解決策を見つけることができないようです。ヘルプや提案は大歓迎です!
コードには、フォーム自体にラベルがあります。以下に示すように、個々のラジオグループにラベルを付ける必要があります。
<form>
<p>What is my middle name?</p>
<br>
<input id="349" type="radio" value="1" name="question1">
<label for="349">Abe</label>
<br>
<input id="350" type="radio" value="2" name="question1">
<label for="350">Andrew</label>
<br>
<input id="351" type="radio" value="3" name="question1">
<label for="351">Andre</label>
<br>
<input id="352" type="radio" value="4" name="question1">
<label for="352">Anderson</label>
<br>
</form>
2つの要素に同じIDを使用しないでください。 name
属性は、ラジオボタンがグループとして機能し、一度に1つの選択のみを許可するように使用されます。
Nathanの回答に従って行うと、ラジオボタンとラベルの間にクリックできないスペースが少しあるようです。シームレスに参加させる方法は次のとおりです( この記事 を参照)。
<form>
<p>What is my middle name?</p>
<br>
<label><input id="349" type="radio" value="1" name="question1">Abe</label>
<br>
<label><input id="350" type="radio" value="2" name="question1">Andrew</label>
<br>
<label><input id="351" type="radio" value="3" name="question1">Andre</label>
<br>
<label><input id="352" type="radio" value="4" name="question1">Anderson</label>
<br>
</form>
入力タグをラベルタグ内にネストすると、ラベルがラジオボタンのすぐ横に表示されます。以前に提案されたアプローチでは、ラベルファイルをhtmlファイル内のどこにでも配置でき、クリックすると関連するラジオボタンが選択されます。これをチェックしてください:
<html>
<body>
<form>
<p>What is my middle name?</p>
<br>
<input id="349" type="radio" value="1" name="question1">
<br>
<input id="350" type="radio" value="2" name="question1">
<label for="350">Andrew</label>
<br>
<input id="351" type="radio" value="3" name="question1">
<br>
<input id="352" type="radio" value="4" name="question1">
<label for="352">Anderson</label>
<br>
</form><br/>
<p>This is a paragraph</p>
<label for="349">Abe</label><br/>
<label for="351">Andre</label>
</body>
</html>
代わりにこの方法で行うと、この欠陥がなくなります。
<form>
<p>What is my middle name?</p>
<br>
<label>
<input id="349" type="radio" value="1" name="question1"/>Abe
</label>
<br>
<label>
<input id="350" type="radio" value="2" name="question1"/>Andrew
</label>
<br>
<label>
<input id="351" type="radio" value="3" name="question1"/>Andre
</label>
<br>
<label>
<input id="352" type="radio" value="4" name="question1"/>Anderson
</label>
<br>
</form>
ラベルタグは、各回答の周りにある必要があります。安倍、アンドリューなどであり、それぞれに固有である必要があります。
私はこれを何年もやっていますが、変数を使用してこれらのどちらも動作しません。
echo "<input type='radio' name='student' id='$studentID' value='$studentID'>
<label for='$studentID'>$fname</label> $lname<br />\n";
echo "<input type='radio' name='student' id='$studentID' value='$studentID'>
<label for='$studentID'>$fname $lname</label><br />\n";
ここにソースがあります:
<input type='radio' name='student' id='986875' value='986875'>
<label for='986875'>John</label> Brown<br />
このようにできます
<label for="1">hi</label>
<input type="radio" id="1" />
したがって、テキストまたはラベルをクリックすると、ラジオボタンが選択されます。しかし、これを行うと...
<label for="1">//</label>
これを直前に書いたコードに追加すると、2番目のラベルをクリックするとラジオも選択されます。