首页 > 解决方案 > (ASP.NET) args.IsValid 如何阻止表单被提交?

问题描述

当我添加自定义验证时,ASP.NET 将这些 javascript 发送到浏览器,例如:

<script>
  function validatePhoneNumbers(source, args)
  {
   var phoneHome = ...

   if (phoneHome.value != '')
   {
     args.IsValid = true;
   }
   else
   {
     args.IsValid = false;
   }
 }
</script>

那么如何args.IsValid = false;停止提交表单呢?

标签: javascriptasp.net

解决方案


我假设您在设置客户端验证的页面某处的控件上有ClientValidationFunction属性设置:CustomValidator

<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="validatePhoneNumbers" ...>
</asp:CustomValidator>

args函数内部使用的参数validatePhoneNumbers实际上有两个属性,一个是命名的ValueIsValid一个是类的成员ServerValidateEventArgs

因此,该IsValid属性指示存储在Value由控件关联的输入控件提供的属性内部的值是CustomValidator通过还是失败验证过程。如果验证失败,则整个表单提交事件将被停止。

进一步参考:

CustomValidator 类


推荐阅读