【发布时间】:2011-06-04 06:23:19
【问题描述】:
我有一个自定义验证器,其中验证控件的脚本是客户端 JavaScript。
在我调用Page.Validate("groupName") 的网站背后的VB 代码中,但我的验证脚本根本没有被触发。我在我的 JavaScript 中放置了一个断点,但它甚至没有触及我的验证脚本。当我在非自定义验证器上使用相同的功能时,它可以工作。
我认为不可能通过Page.Validate("groupName") 在我的 VB 代码后面调用我的客户端验证脚本。我绝对需要服务器端验证功能吗?
这里有一段代码:
<asp:CustomValidator ID="ValidateTxt" runat="server"
ClientValidationFunction="validateTxt"
ControlToValidate="txtBox"
Display="Dynamic"
ValidationGroup="group1">
</asp:CustomValidator>
<script type="text/javascript" language="javascript" >
function validateFinHeight(source, arguments)
{
if(arguments.Value % 2 == 0 ){
arguments.IsValid = true;
}
}
</script>
VB 背后的代码:
Protected Sub cbo(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbo.SelectedIndexChanged
Page.Validate("group1")
End Sub
Page.Validate("group1") 没有调用我的 JavaScript 函数。
【问题讨论】:
-
是的,您绝对需要服务器端验证,因为用户可以绕过您的 javascript 检查并将他们想要的任何内容提交到您的表单。唯一可以确定的方法是在服务器端进行检查。
-
我不担心用户绕过,因为这是一个简单的 Web 应用程序,在我工作的公司中只有大约 3-4 人使用。它不会向公众开放,在那里人们会尝试这种肮脏的东西。
标签: asp.net vb.net validation customvalidator