2010-12-06 16 views
1

Je tente de modifier le nom d'un ensemble de boutons radio créés via un contrôle de répéteur ASP.NET. J'ai essayé cette ligne jQuery:Problème lors de la définition de l'attribut name de l'élément de bouton radio à l'aide de jQuery sur IE7

$('#divContainer input:radio[name*=optModalShippingMethodGroup]').attr('name', 'testValue'); 

mais quand je regarde le balisage du navigateur émis par les boutons radio ont toujours la propriété de nom attribué .NET. J'ai ensuite isolé le problème dans le script jsBin this. Si je lance ce script dans Firefox et IE8, il se comporte comme prévu et les boutons radio sont mutuellement exclusifs. Sur IE7 cependant, les deux boutons peuvent être sélectionnés en même temps.

Quelqu'un at-il déjà rencontré ce problème et, si oui, des conseils pour le résoudre? Malheureusement, la prise en charge d'IE7 n'est pas une option.

Répondre

0

J'ai résolu ce relativement sans douleur. Ce que j'ai fait était de créer une classe de bouton radio personnalisée qui hérite de System.Web.UI.WebControls.RadioButton. Dans la méthode Render() de cette classe, j'utilise HtmlWriter.AddAttribute pour ajouter l'attribut name avec une valeur explicite définie dans le balisage au bouton radio.

1

Vous devez utiliser jQuery pour les valeurs de .val()-method (c'est-ce que votre exemple fait), mais je pense que ce que vous essayez de faire est la suivante:

$('#divContainer input:radio[name*=optModalShippingMethodGroup]').attr('name', 'testValue'); 
+0

Oui, vous avez raison, j'ai foiré mon exemple cité. Je l'ai corrigé maintenant. – Malice