Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WebControls.RadioButtonList et Javascript

6 réponses
Avatar
Gilbert Tordeur
Bonjour,

En javascript, comment puis-je m'assurer qu'un bouton radio
(System.Web.UI.WebControls.RadioButtonList) a été coché ? Comment puis-je
savoir lequel ?

Merci de votre aide,
Gilbert

6 réponses

Avatar
Jérémy Jeanson
Bonjour Gilbert,

En JavaScript tu peux utiliser le code suivante pour savoir si un de tes
control asp:RadioButton est coché :

if(document.getElementById("<%=RadioButton1.ClientID %>").checked)
{
// ...
}

Avec l'Id de ton control asp:RadioButton


--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Gilbert Tordeur
Bonjour Jérémy.

Attention : je n'ai pas de RadioButton, j'utilise un RadioButtonList. D'où
ma question.

Gilbert

"Jérémy Jeanson" a écrit dans le message de news:

Bonjour Gilbert,

En JavaScript tu peux utiliser le code suivante pour savoir si un de tes
control asp:RadioButton est coché :

if(document.getElementById("<%=RadioButton1.ClientID %>").checked)
{
// ...
}

Avec l'Id de ton control asp:RadioButton


--
Jérémy JEANSON
MCP
http://www.jjeanson.fr


Avatar
Jérémy Jeanson
Bonjour Gilbert,

Pardon pour le manque d'attention, mais tu as de la chance j'ai aussi
rencontré ce drôle de cas. en fait un RadioButtonList peut être parcouru
en Javascript comme une liste de radio donc on peut consulter chaque
radio et via sa propriété value savoir le readio qui est coché.

voici un exemple ou je recherche le RadioButtonList puis je le parcour
et si je trouve un radiobutton checked je stocke sa valeur dans une
variable "retour" :

var retour = null;
var liste = document.getElementById("<%=RadioButtonList1.ClientID %>")

for (var i = 0; i < liste.length; i++)
{
if (liste[i].checked) retour = liste[i].value;
}

Après il suffit de vérifier si le retour est null ou non.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Gilbert Tordeur
Impeccable !

Merci,
Gilbert
Avatar
Jérémy Jeanson
Bonjour Gilbert,

j'ai trouvé mon erreur (petit trou de mémoire en fait car j'avais déjà
vu ce souci) c'est le get qui n'est pas bon, il faut utiliser
"document.getElementsByName"... c'est idiot, mais ça change tout. Encore
une raison pour moi de ne pas aimer JavaScript.

Peut être auras tu la même chose avec un "$get", mais je en connais pas
assez JavaScript pour dire.

Petite question : Vu qu'il semble s'agir d'une validation de controls ,
ne ferrais tu pas mieux d'utiliser le control asp:CustomValidator plutôt
qu'un script client?
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Jérémy Jeanson
Bonjour Gilbert,

getElementsByName fonctionne si on lui passe le ClientID du control
serveur. Cela peut semblé étrange, mais en fait quand tu regardes le
code HTML tu peux constater que la propriété name contient le ClientID.

Donc le code suivant est valable :

var liste = document.getElementByName("<%=RadioButtonList1.ClientID %>")

for (var i = 0; i < liste.length; i++)
{
if (liste[i].checked)
{
return liste[i].value;
}
}

Testé et éprouvé, l'erreur que j'ai fait avant était de vouloir
ressortir le code de tête plutôt que mes snipets ;)

PS: dans ton CustomValidator tu peux interagir avec le reste de ton
formulaire. Bien entendu couplé à un UpdatePanel cela permet une
utilisation visuellement plus agréable.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr