Как сделать переключатель «Другое — укажите?»

StackOverflow https://stackoverflow.com/questions/407272

  •  03-07-2019
  •  | 
  •  

Вопрос

Я создаю HTML-форму с некоторыми опциями переключателей.Я хотел бы иметь один вариант «Другое — укажите», и позволить пользователю что-то вводить.

Два вопроса:

1) Как сделать «гибридный» тип ввода radio/text?

2) На внутренней стороне PHP, если входные данные имеют то же самое name атрибут в качестве радиовходов, будет ли ввод пользователя частью того же массива?

Это было полезно?

Решение

№1:В радиополе «other:» добавьте <input type="text" ...> со стилем display:none и отображать его только тогда, когда пользователь выбирает радиополе «other:».

Однако я не совсем уверен, сработает ли №2.Вы получите rboption=other из переключателя И rboption=some%20text из текстового поля.Один обычно перезаписывает другой, но неизвестно какой (читай:зависит от позиции на странице, браузера и фазы луны).
Чтобы быть уверенным, сделайте имя текстового поля другим и обрабатывайте его только тогда, когда rboption == 'other' (как сказал Солти)

Другие советы

Почему бы просто не добавить другой имя атрибут входа и проверять его только в том случае, если другой Радиокнопка выбрана?

Вот как я это сделал:

<input type="radio" name="phone" value="313-375-2151">Taylor <br>
<input type="radio" name="phone" value="555-444-1234">OverheadHts <br>
<input type="radio" name="phone" value="555-333-1234">Smith Ctr <br>
<input type="radio" name="phone" value="444-344-1234">Mainsville<br>
<input type="radio" name="phone" value="other">Other:
    <input type="text" name="phone-other" size="14">

И затем, когда вы обрабатываете форму:

$phone = mysql_real_escape_string($_POST['phone']);
if ($phone =='other'){
  $phone = mysql_real_escape_string($_POST['phone-other']);
}

и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top