我有一個複選框,它位於usercontrol中,usercontrol位於wizardcontrol中,wizardcontrol位於具有masterpage的內容頁面上。嚮導控件驗證問題中的usercontrol中的自定義驗證器
在嚮導控件完成之前,必須選中該複選框。複選框和customvalidator位於wizardcontrol的最後一步。
現在一切工作正常與Firefox和當我測試它也與ie。但不知何故,其他人可能能夠繼續進行處理,而不必檢查複選框。 該複選框也有一個togglebutton擴展器。我希望這不是問題。
我的內聯JavaScript(在用戶控件)
<script language="javascript" type="text/javascript">
// <![CDATA[
function ValidateTandCs(source, args)
{
args.IsValid = document.getElementById('<%= cbAV.ClientID %>').checked;
}
// ]]>
</script>
複選框:
<asp:checkbox id="cbAV" runat="server"/>
的customevalidator和切換按鈕擴展
<asp:CustomValidator
ID="rfvAV"
Display="Dynamic"
runat="server"
ControlToValidate="cbAV"
ErrorMessage="RequiredFieldValidator"
ClientValidationFunction="ValidateTandCs"
onservervalidate="rfvAV_ServerValidate">
</asp:CustomValidator>
<ajaxToolkit:ToggleButtonExtender
ID="tbeav"
runat="server"
TargetControlID="cbAV"
ImageHeight="15"
ImageWidth="15"
CheckedImageUrl="~/images/checkbox-on.gif"
UncheckedImageUrl="~/images/checkbox-off.gif" />
中的CustomValidator背後的代碼
protected void rfvAV_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = (cbAV.Checked);
}
我試圖從customvalidator中刪除客戶端驗證,但是當我只有服務器驗證。它不起作用
因爲我以前只有客戶端。而且這在IE中似乎不起作用。因此我也添加了一個serverside。 – 2009-12-14 13:34:52
而且,因爲如果它對任何事情都是遠程敏感的,你永遠不應該信任客戶端驗證。如果客戶有點創意,客戶可以繞過它。客戶端驗證方便客戶端。服務器端驗證安全性。 – Mir 2013-03-15 20:30:52