Validera CheckBox med CustomValidator
Försökte att lägga till en RequiredFieldValidator för att kontrollera att en CheckBox var ikryssad vid postning, men det gick inte så bra. Felet blev:
Control 'CheckBox1' referenced by the ControlToValidate property of
'RequiredFieldValidator1' cannot be validated.
'RequiredFieldValidator1' cannot be validated.
Någonstans läste jag att man inte lagt till denna möjlighet på CheckBox för att "bägge värdena alltid är riktiga". Det kanske kan vara ett bra argument, men jag ville endå ha denna funktionelitet. I mitt fall gällde det en ruta som användaren måste kryssa i för att fortsätta.
Så jag gjorde det med en CustomValidator istället, så här ser uppmärkningen ut på sidan.
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
<br />
<asp:CustomValidator ClientValidationFunction="ValidateChecked"
Runat="server" ID="termsReadUnchecked" ErrorMessage="You must tick this box to continue"/>
<br />
<asp:CustomValidator ClientValidationFunction="ValidateChecked"
Runat="server" ID="termsReadUnchecked" ErrorMessage="You must tick this box to continue"/>
Och i koden bakom lägger jag till JavaScript-funktionen för valideringen.
HtmlGenericControl validateCheckedScript = new HtmlGenericControl("script");
validateCheckedScript.Attributes.Add("type", "text/javascript");
validateCheckedScript.InnerHtml = "function ValidateChecked(src, args){args.IsValid=document.getElementById(\"" + ChckBox1.ClientID + "\").checked;}";
this.Page.Header.Controls.Add(validateCheckedScript);
validateCheckedScript.Attributes.Add("type", "text/javascript");
validateCheckedScript.InnerHtml = "function ValidateChecked(src, args){args.IsValid=document.getElementById(\"" + ChckBox1.ClientID + "\").checked;}";
this.Page.Header.Controls.Add(validateCheckedScript);
Comments
Luis Barrueto Wrote:
13:e April 2011
Hej, Om det finns flera CheckBoxar som måste kontrolleras innan man skickar formuläret, hur gör vi det. Annars jag har testat med en CheckBox fungerar bra men inte med flera Ha det
Tags