2017-08-22 2 views
0

Je veux obtenir la longueur d'un bouton radio en utilisant la syntaxe jquery .lengthComment utiliser .attr (« name ») lorsque le nom a une structure de tableau

Les noms des boutons radio sont comme les obj suivantes [1 ], obj [2] et ainsi de suite. Si je l'adresse directement $("input:radio[name='obj[1]']:checked").length j'obtiens la bonne longueur.

Si j'obtiens le nom en utilisant .attr("name") et que j'obtiens le $("input:radio[name="+name+"]:checked").length je n'ai pas la bonne longueur.

S'il vous plaît aider avec la syntaxe correcte comment adresser les boutons radio par leur nom.

+0

Pouvez-vous s'il vous plaît mettre à jour votre question pour inclure le code HTML, afin qu'il montre votre ** code ** pertinent dans un [** exemple minimal, complet et vérifiable **] (http://stackoverflow.com/help/mcve)? –

+0

'$ (" input: radio [name = "+ nom +"]: coché ")' ne place pas de guillemets autour du nom pour forcer le [] dans le nom à être considéré comme une chaîne littérale. Je suppose que cette recherche pense que les [] sont des opérateurs et se fubarisent eux-mêmes. Je m'attendrais à '$ (" input: radio [name = '"+ nom +"']: coché ")' pour fonctionner – Taplar

Répondre

0

Le problème est, dans la 2ème méthode, il vous manque des guillemets. Utilisez ceci:

$("input:radio[name='"+name+"']:checked").length 

Si le nom contient des caractères spéciaux [y compris] il doit être cité, comme vous l'avez fait dans le premier cas. Vous ajoutez juste le contenu de la variable de nom dans la chaîne, qui est envoyée dans jQuery comme dans le premier cas.

+0

Votre réponse a fonctionné pour moi il n'y a qu'une erreur mineure sur la séquence des guillemets, finalement j'utilise '$ (" input: radio [name = '"+ nom +"']: coché "). length' –

+0

Ouais je vois, c'était une faute de frappe. Fixé. –