Sto lavorando con una procedura guidata, in cui l'utente può registrarsi. C'è un asp: RadioButtonList con due opzioni, e alcuni dei campi di input nella procedura guidata cambia quando cambia il pulsante radio. Su ogni campo c'è un asp: Validator (asp: RequiredFieldValidator ad esempio). Il problema è che quando l'utente invia la pagina, il validatore per la casella di testo nascosta sta ancora spuntando.Abilita/disabilita asp: validatori utilizzando jquery
primo luogo, qui è il tag div che cambia le caselle di testo indicati e il RadioButtonList
<div id="divTxt1">
<asp:TextBox runat="server" CssClass="text" ID="txtNumber"
type="number"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server" ControlToValidate="txtNumber" EnableClientScript="true" ErrorMessage="Error" ToolTip="Error">*
</asp:RequiredFieldValidator>
</div>
<div id="divTxt2">
<asp:TextBox runat="server" CssClass="text" ID="txtNumber2"
type="number"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
runat="server" ControlToValidate="txtNumber2" EnableClientScript="true" ErrorMessage="Error2" ToolTip="Error2">*
</asp:RequiredFieldValidator>
</div>
<div id="radio">
<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="1" Selected="True">Privat</asp:ListItem>
<asp:ListItem Value="2">Offentlig</asp:ListItem>
</asp:RadioButtonList>
</div>
ho cercato di risolverlo utilizzando jQuery come il seguente, che ho letto dovrebbe fare il trucco, ma purtroppo non:
$(document).ready(function() {
$('#<%= WizardStep1.ContentTemplateContainer.FindControl("RadioButtonList1").ClientID %> input').change(function() {
if ($(this).val() == "1") {
$('#txtNumber').toggle('fast');
$('#txtNumber2').toggle('fast');
ValidatorEnable($('#<%=WizardStep1.ContentTemplateContainer.FindControl("RequiredFieldValidator1").ClientID %>')[0], false);
ValidatorEnable($('#<%=WizardStep1.ContentTemplateContainer.FindControl("RequiredFieldValidator2").ClientID %>')[0], true);
}
if ($(this).val() == "2") {
$('#txtNumber').toggle('fast');
$('#txtNumber2').toggle('fast');
ValidatorEnable($('#<%=WizardStep1.ContentTemplateContainer.FindControl("RequiredFieldValidator2").ClientID %>')[0], false);
ValidatorEnable($('#<%=WizardStep1.ContentTemplateContainer.FindControl("RequiredFieldValidator1").ClientID %>')[0], true);
}
});
});
Quindi, qualsiasi idea cosa c'è che non va?
sei sicuro? sei in grado di trovare il controllo? controllato per NULL? –
Quando eseguo il debug in IE passa senza errori, ma non lo disabilita. – Thomas
non ci sono errori javascript, 'coz se non funziona, ce ne deve essere uno, non credi? ?? Prova a ispezionare con firebug. Dovrebbe darti un suggerimento. – MrClan