Pracuję z kreatorem, w którym użytkownik może się zarejestrować. Istnieje asp: RadioButtonList z dwiema opcjami, a niektóre pola wejściowe w kreatorze zmieniają się, gdy zmienia się radiobutton. Na każdym polu znajduje się kilka asp: Validators (np. RequiredFieldValidator). Problem polega na tym, że kiedy użytkownik przesyła stronę, walidator ukrytego pola tekstowego wciąż pojawia się.Włączanie/wyłączanie asp: walidatory używające jquery
pierwsze, tutaj jest znaczniki div, który zmienia pokazane tekstowych i 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>
Próbowałem go rozwiązać przy użyciu JQuery jak poniżej, co mam czytać powinno załatwić sprawę, ale niestety nie:
$(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);
}
});
});
Jakieś pomysły, co jest nie tak?
jesteś pewien? jesteś w stanie znaleźć kontrolę? sprawdzane pod kątem NULL? –
Kiedy debuguję w IE, przechodzi on bezbłędnie - ale nie wyłącza się. – Thomas
nie ma żadnych błędów javascript, "bo jeśli nie działa, musi być jeden, nie sądzisz? Po prostu spróbuj sprawdzić ogniem. To powinno dać ci wskazówkę. – MrClan