Tworzę aplikację internetową z quizami przy użyciu PHP. Każde pytanie składa się z osobnego <label>
i ma 4 możliwe wybory, za pomocą radio buttons
których użytkownik może wybrać swoją odpowiedź. Bieżący kod HTML dla pojedynczego pytania wygląda następująco:
<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>
Chciałbym, aby użytkownik miał możliwość kliknięcia tekstu związanego z przyciskiem opcji. W tej chwili użytkownik może kliknąć tylko przycisk opcji - co uważam za dość uciążliwe zadanie.
Przeczytałem Nie można wybrać konkretnego przycisku opcji, klikając tekst wyboru, a sugestia wskazuje na dopasowanie atrybutów for
i id
tagów. Zrobiłem to i nadal nie działa.
Moje pytanie brzmi: chciałbym móc kliknąć tekst <input type="radio">
obiektu, a nie tylko wybrać sam przycisk opcji. Wiem, że czytałem o tym wcześniej, ale nie mogę znaleźć żadnego rozwiązania mojego problemu. Każda pomoc lub sugestie są bardzo mile widziane!
Wydaje się, że pomiędzy przyciskiem radiowym a etykietą jest trochę nie do kliknięcia odstępu, jeśli jest to zgodne z odpowiedzią Nathana . Oto jak sprawić, by dołączyli bezproblemowo (zobacz ten artykuł ):
<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>
źródło
<input id="349" type="radio" value="1" name="question1"><label for="349"> Abe</label>
(bez spacji ani znaków nowej linii między tagami)margin: 3px 3px 0 5px;
(jest bardziej zauważalny w przeglądarce Firefox, ponieważ domyślnie występuje efekt najechania kursorem), który można naprawić za pomocą CSS, usuwając margines i zastępując go dopełnieniem.Etykieta powinna znajdować się wokół każdej odpowiedzi, np. Abe, Andrew, itp. I musi być niepowtarzalna dla każdej z nich.
źródło
Zagnieżdżenie tagu wejściowego w tagu etykiety zapewnia, że etykieta pojawi się tuż obok przycisku opcji. Przy sugerowanych wcześniejszych podejściach możesz umieścić znacznik etykiety w dowolnym miejscu w pliku html, a po kliknięciu wybierze powiązany przycisk opcji. Sprawdź to:
<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>
Zrobienie tego w ten sposób eliminuje zamiast tego tę wadę:
<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>
źródło
Możesz to zrobić w ten sposób
<label for="1">hi</label> <input type="radio" id="1" />
Więc jeśli klikniesz tekst lub etykietę, wybierze przycisk opcji. Ale jeśli to zrobisz ...
<label for="1">//</label>
a dodasz to do tego co napisałem w kodzie tuż przed tym to jak klikniesz na drugą etykietę to też wybierze radio.
źródło
Robię to od lat, ale żadne z nich nie działa dla mnie przy użyciu zmiennych.
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";
a oto źródło:
<input type='radio' name='student' id='986875' value='986875'> <label for='986875'>John</label> Brown<br />
źródło