Следующая попытка работает в IE8, но не в Firefox (для этого нельзя использовать JQuery):
case 'Template:templateControl:residenceRBL2':
if (selected.value == 'Within USA')
{
/* Enable zip textbox and validator */
document.getElementById("Template_templateControl_zipTxt1").disabled=false;
ValidatorEnable(document.getElementById('<%=firstPersonZipReqVal.ClientID%>'),
true);
...
}
else if (selected.value == 'Outside USA')
{
/* Disable zip textbox and validator */
document.getElementById("Template_templateControl_zipTxt1").disabled=true;
ValidatorEnable(document.getElementById('<%=firstPersonZipReqVal.ClientID%>'),
false);
...
}
break;
<asp:Label ID="firstPersonZipLabel" Runat="server"></asp:Label><br />
<asp:TextBox ID="zipTxt1" Height="19" Width="100"
Runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="firstPersonZipReqVal"
ControlToValidate="zipTxt1" Display="Dynamic"
ErrorMessage="First Person Zip"
Runat="server">*</asp:RequiredFieldValidator>
Описание проблемы: В зависимости от выбора списка радиокнопок, требуемый валидатор отключается / повторно включается для текстового поля. По сути, если их адрес находится за пределами США, то валидатор zip-текстового поля отключен. В Firefox это не будет работать вообще.
ОБНОВЛЕНИЕ 1: 09-07-2010
Я отключил текстовое поле в Firefox; Я использовал атрибут имени вместо идентификатора. Моя единственная проблема сейчас заключается в том, как получить доступ к «ClientID» валидатора ASP.NET в JS?
ОБНОВЛЕНИЕ 2: 09-07-2010
Согласно документации MSDN , я думал, что смогу сделать что-то вроде этого:
ValidatorEnable(firstPersonZipReqVal, false);
К сожалению, в Firefox это тоже не работает ...
Неисправность ASP.NET при проверке кода на стороне клиента проверки в Firefox
ОБНОВЛЕНИЕ 3: 09-08-2010
Причина, по которой Firefox не работает хорошо, заключается в том, что ASP.NET 1.1 рассматривает его как браузер нижнего уровня. Если я добавлю clientTarget = "upLevel" в тег Page, Firefox будет работать как положено. К сожалению, это нарушает весь макет сайта. Есть ли более постепенный способ исправления колпачков браузера для Firefox? Эта версия browserCaps также нарушает макет.
Текущие пробки браузера в Web.Config выглядят так:
<browserCaps>
<case match="Gecko/[-\d]+">
browser=Netscape
frames=true
tables=true
cookies=true
javascript=true
javaapplets=true
ecmascriptversion=1.5
w3cdomversion=1.0
css1=true
css2=true
xml=true
tagwriter=System.Web.UI.HtmlTextWriter
<case match="rv:1.0[^\.](?'letters'\w*)">
version=6.0
majorversion=6
minorversion=0
<case match="^b" with="${letters}">
beta=true
</case>
</case>
<case match="rv:1(\.\d+)(\.\d)?(?'letters'\w*)">
version=7.0
majorversion=7
minorversion=0
<case match="^b" with="${letters}">
beta=true
</case>
</case>
</case>
</browserCaps>
ОБНОВЛЕНИЕ: 09-11-2010
Следующая ссылка может дать ответ; может кто-нибудь помочь с кодом на 50 баллов?
http://www.4guysfromrolla.com/articles/051204-1.aspx