Возникли проблемы при установке атрибута имени элемента переключателя с помощью jQuery на IE7 - PullRequest
1 голос
/ 06 декабря 2010

Я пытаюсь изменить имя набора переключателей, созданных с помощью элемента управления повторителя ASP.NET. Я попробовал эту строку jQuery:

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

но когда я смотрю на разметку, выводимую браузером, переключатели все еще имеют свойство имени, назначенное .NET. Затем я выделил проблему в этом jsBin-скрипте. Если я запускаю этот скрипт в Firefox и IE8, он ведет себя как положено, а переключатели являются взаимоисключающими. В IE7 обе кнопки могут быть выбраны одновременно.

Кто-нибудь сталкивался с этой проблемой раньше, и если да, то есть ли какой-нибудь совет, как ее решить? К сожалению, отказаться от поддержки IE7 невозможно.

Ответы [ 2 ]

1 голос
/ 06 декабря 2010

Вы должны использовать jQuery .val() -метод для значений (это то, что делает ваш пример), но я думаю, что вы пытаетесь сделать следующее:

$('#divContainer input:radio[name*=optModalShippingMethodGroup]').attr('name', 'testValue');
0 голосов
/ 08 декабря 2010

Я решил это относительно безболезненно. Я создал собственный класс переключателей, который наследуется от System.Web.UI.WebControls.RadioButton. В методе Render () этого класса я использую HtmlWriter.AddAttribute , чтобы добавить атрибут имени с явным значением, определенным в разметке, к переключателю.

...