如何在ASP.NET中的客户端提交表单之前进行验证

时间:2014-01-25 23:35:54

标签: c# javascript asp.net validation

我有一个ASP.NET网页表单,其中包含已禁用的验证程序。我想仅在单击“提交”按钮后启用验证器,并且基于控件是否可见。

这是我的功能:

protected void Submit_Click(object sender, System.EventArgs e)
{
if (ddlSite.Visible){    
  rfvSite.Enabled = true;
  base.Validate();
} else {
  rfvSite.Enabled = false;
}

上面的代码工作正常。但现在我想检查页面是否有效。如果页面有效,那么我想处理表单。我不知道该怎么做。

3 个答案:

答案 0 :(得分:2)

您有多种选择:

  1. 尝试将您的控件拆分为多个validation groups,这只会在提交时验证特定组中的控件。

  2. 编写自己的自定义验证程序。自定义验证器可以声明客户端验证功能和服务器验证功能。创建自定义验证程序为well-documented

  3. 正如StevieB所提到的,如果隐藏控件服务器端,则不会触发验证器。如果隐藏它们的决定是在客户端进行的,那就更难了。

  4. 挂钩客户端验证功能并操纵验证器。这可能很困难,可能需要更改内部ASP.Net脚本。有时,这是使Web表单验证执行您需要的唯一方法。有关扩展/修改验证器行为的示例,请参阅this question

  5.   

    由于我是asp.Net c#的新手,我很想知道有人可以给我一个   示例或想法如何实现这一目标?

    考虑使用ASP.Net MVC而不是Web表单。 Web表单模型已经过时了,并且会像这样“对战”。如果你刚刚开始,我建议至少调查MVC,看看你的时间是否更好。

答案 1 :(得分:0)

由于这个原因,创建了很多jquery插件: http://tinyurl.com/qetudk8

答案 2 :(得分:0)

我相信如果您添加

if(Page.IsValid) {
  // Code here
}

在提交表单的按钮周围,页面应触发验证错误。