我有一个复选框,它位于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