javascript - asp 网络客户端验证的验证事件

标签 javascript asp.net validation

我想知道是否有一种方法可以将自定义函数连接到 asp 网络客户端验证事件,所以每次验证被任何控件触发时,我都可以在客户端 UI 上做一些魔术

我正在寻找一种通用方法来拦截页面 onvalidating 事件,而无需在导致回发的每个控件上设置它

谢谢大家

编辑:

我最终得到了这个函数:(感谢@Kirk)

$(document).ready(function () {
    $('form').submit(function () {
        if (typeof Page_Validators != 'undefined') {
            var errors = '';
            $.each(Page_Validators, function () {
                if (!this.isvalid) {
                    errors += this.errormessage + '\r\n';
                }
            });
            if (errors.length > 0) {
                Alert(errors);
            }
        }
    });    
}); 

最佳答案

要执行类似的操作,您可以在提交按钮上放置一个 OnClientClick 事件或仅在一般表单提交事件上放置。

然后您可以将客户端验证对象模型与验证器控件一起使用。这实际上允许您验证您设置的每个验证控件。您可以从与页面相关的客户端检查几个值,请参阅 http://msdn.microsoft.com/en-us/library/yb52a4x0.aspx#ClientSideValidation_ClientValidationObjectModel .

您使用 isvalid 属性引用每个控件。例如

<asp:Label id="lblZip" runat="server" Text="Zip Code:" />
<asp:TextBox id="txtZip" runat="server" /></asp:TextBox>
<asp:RegularExpressionValidator id="valZip" runat="server"
   ControlToValidate="txtZip"
   ErrorMessage="Invalid Zip Code" 
   ValidationExpression="[0-9]{5}" />

<script language=javascript>
// Call this function to do something
function txtZipOnChange() {
   // Do nothing if client validation is not active
   if (typeof(Page_Validators) == "undefined")  return;
       // Change the color of the label
       lblZip.style.color = valZip.isvalid ? "Black" : "Red";
}
</script>

您还可以使用客户端函数 Page_Validators 获取页面上的验证器数组。您还可以使用一些其他功能。

您还可以使用 ValidatorValidate(val) 客户端函数来强制单独检查每个验证器,以及 ValidatorEnable(val, enable) 来启用或禁用验证器按照您的逻辑要求。

看看http://msdn.microsoft.com/en-us/library/aa479045.aspx#aspplusvalid_clientside了解更多详情。

希望这能让你到达你需要去的地方。如果没有,请随时询问。

之前的评论 您可以使用 onClientClick 并附加一个 JavaScript 函数。 http://msdn.microsoft.com/en-us/library/7ytf5t7k.aspx

如果你想使用 jQuery,你可以使用 ClientIDMode 你可以更容易地找出控件 ID。

看看http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx .

关于javascript - asp 网络客户端验证的验证事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382849/

相关文章:

javascript - 如何制作asp文本框的按键事件?

javascript - 在按钮上单击弹出窗口正在打开

javascript - Html5 Websocket 和顺序处理队列

javascript - 来自包装在服务中的外部 HTTP API 的数据绑定(bind)不起作用

asp.net - 如何使用嵌套 View 模型获取 EditorFor 的数据

c# - 具有枚举角色的 ASP.NET Core 中的自定义授权

javascript - Gulp bower 主失去了自己

javascript - 使用 IndexedDB 检测可用存储

java - SQL SELECT-only 查询文本验证

javascript - 如何在没有 I 的情况下使用正则表达式验证 A-K 范围?