2009-09-23 3 views
1

Je veux sélectionner un RadioButton particulier en fonction de sa valeurSélectionner la valeur d'un RadioButton

<input id="RadioJ" type="radio" name="grp1" value="AAA" /> 
<input id="FaroK" type="radio" name="grp1" value="BBB" /> 
<input id="MartreLK" type="radio" name="grp1" value="CCC" /> 

Quelque chose comme ceci:

var Radio = bouton radio dont la valeur est BBB

Une autre chose que je Je regarde est que si un bouton est cliqué, tous les radiobuttons qui sont cachés devraient être visibles.

Répondre

5

Vous pouvez sélectionner en fonction de la valeur directement, par exemple:

var radio = $("input[type='radio'][value='BBB']") 
+0

Quelle est la différence entre l'entrée [type = 'radio'] et l'entrée: radio..qu'est-ce qui est le mieux? – KJai

+1

@KJai: entrée [type = 'radio'] et entrée: la radio fonctionnera tous les deux. Le sélecteur [attr = valeur] fonctionnera pour n'importe quel attribut, le second est un pseudo-sélecteur qui fera de même en interne je suppose. –

0

En supposant que vous avez un élément <form> entourant vos boutons radio:

function getRadioWithValue(form, groupName, val) { 
    var radios = form.elements[groupName]; 
    var i = radios.length, radio; 
    while (i--) { 
    radio = radios[i]; 
    if (radio.value === val) { 
     return radio; 
    } 
    } 
    return null; 
} 

var radio = getRadioWithValue(document.forms["your_form_name"], "grp1", "BBB"); 

Ce sera énormément plus efficace et rapide que l'équivalent jQuery utilisant des sélecteurs CSS inutiles.

+1

Je serais intéressé de savoir si cela a fait une différence perceptible sur une page avec un DOM modérément complexe. Je pourrais faire un benchmarking ce soir pour m'amuser. –

+0

Je serais intéressé de voir les résultats. –

+0

(Enregistrement des nanosecondes sur la machine client) OU (Enregistrement de 10 lignes de bande passante) Le choix vous appartient. –

Questions connexes