2010-11-03 5 views
0

J'ai un cas où je veux autoriser une variable de formulaire à être définie sur l'un d'un ensemble de valeurs (dans mon cas actuel vrai/faux) ou laissé non défini (dans Dans ce cas, aucune valeur n'est renvoyée plutôt qu'une valeur «aucun» ou un blanc. Une case à cocher peut donner le bit unset mais seulement une valeur de set. Un élément radio pourrait fonctionner, en quelque sorte. Mais une fois qu'une valeur est sélectionnée, il n'y a aucun moyen de revenir en arrière. Toutes les autres entrées que j'ai regardées définissent toujours la variable, peu importe quoi. Est-ce que je manque quelque chose ou est-ce que je vais devoir accepter une solution moins qu'idéale?Entrée "A, B ou none" pour les formulaires HTML

Répondre

0

Mettez trois radios: A, B et Aucun

+0

Je ne veux pas de valeur de none ou même une valeur vide. Je ne veux même pas * avoir * une valeur. – BCS

0

Qu'en est-il une liste déroulante avec

---Please Select--- 
Option A 
Option B 

J'ai postulez à un grand nombre d'emplois en ligne ces derniers temps, et ce sont les gens de la route ont pris en général.

0

Une boîte déroulante fonctionnerait-elle?

<select name="choices"> 
    <option>(None)</option> 
    <option value="a">Choice A</option> 
    <option value="b">Choice B</option> 
</select> 
+0

L'option Aucune est vide par défaut. Je suppose que je pourrais les filtrer à l'arrière, mais je préfère ne pas le faire. (que se passe-t-il si l'une des valeurs légales est vide?) – BCS

+0

@BCS: Put valeur = "none" et vous êtes défini – nico

+0

@nico: Je ne veux aucune valeur, pas une valeur vide ou même une valeur de " aucun". – BCS

1

Trois boutons radio ou un <select> avec trois <option> fera.

+0

J'ai essayé les deux avant de poster Pour ces deux cas, il n'y a aucun moyen de faire en sorte que la requête ne contienne pas la variable (par opposition à être là et à avoir une valeur vide) – BCS

+0

@BCS: Dans ce cas, mettez deux boutons radio et un "aucun" bouton lié à un JS qui réinitialise l'état des deux.Pas une grande interface utilisateur, mais cela fonctionnerait – nico

0

En utilisant 3 boutons radio dans un groupe, vous pourriez cachez le premier bouton radio 'none' avec CSS (visibility:hidden; ou display:none;), et si c'est celui sélectionné lors de la validation de votre formulaire, alors l'utilisateur n'a choisi aucune des vraies ou fausses radios.

EDIT (commentaires post):

Si personne Javascript est une exigence, vous pouvez conditionnellement appliquer une classe « hideableItem » à la radio cachée, si le script est désactivé le pire que vous obtiendrez est 3 la radio pour l'utilisateur à choisir, comme d'autres l'ont décrit. Si JS est activé, la radio par défaut est masquée et fournit le comportement que j'ai décrit.

La cachette conditionnelle si JS est dis/technique activée est décrite ici: http://lucassmith.name/2008/10/script-to-add-css-only-when-javascript-is-available.html

Je l'utilise tout le temps, son grand.

+0

mais alors comment retournent-ils à rien s'ils changent d'avis après avoir choisi vrai ou faux? – CaffGeek

+0

Je suppose qu'au strict minimum vous pouvez ajouter des écouteurs à vos boutons radio et si l'utilisateur clique sur la radio et qu'elle est sélectionnée, la radio cliquée n'est plus sélectionnée et la radio cachée redevient la valeur sélectionnée. Javascript minimum impliqué. – danjah

Questions connexes