Como posso fazer um botão de rádio para “Outro -? Por favor especificar”
-
03-07-2019 - |
Pergunta
Estou criando um formulário HTML com algumas opções de botão de rádio. Eu gostaria de ter uma opção como. "Outro - por favor especifique" e permitir que o usuário digite algo em
Duas perguntas:
1) Como posso fazer um tipo de entrada "híbrido" de radio/text
?
2) No back-end PHP, se a entrada tem o mesmo atributo name
como as entradas de rádio, será a entrada do usuário ser parte da mesma matriz?
Solução
# 1: Para o "outro" campo de rádio, adicione um <input type="text" ...>
com display style: none e só exibi-lo quando o usuário seleciona o "outro". Campo de rádio
No entanto, eu não estou totalmente certo se # 2 iria trabalhar. Você deseja obter rboption=other
do botão de rádio e rboption=some%20text
do campo de texto. Um geralmente substituir o outro, mas não é certo qual. (Leia-se: depende da posição na página, navegador e fase da lua)
Para ter certeza, tornar o nome campo de texto diferente e só processá-lo quando rboption == 'other'
(como Salty disse)
Outras dicas
Por que não apenas adicionar um diferente nome atributo para a entrada e só validar se o outros botão de opção foi selecionada?
Aqui está como eu fiz isso:
<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">
E então quando você processar o formulário:
$phone = mysql_real_escape_string($_POST['phone']);
if ($phone =='other'){
$phone = mysql_real_escape_string($_POST['phone-other']);
}
etc.