asp net客户端验证的验证事件

Mil*_*lox 5 javascript asp.net validation

我想知道是否有办法将自定义函数连接到asp net客户端验证事件,因此每次验证都被任何控件触发时我都可以在客户端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);
            }
        }
    });    
}); 
Run Code Online (Sandbox Code Playgroud)

Kir*_*irk 2

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

然后您可以将Client Validation Object Model与验证器控件一起使用。这实际上允许您验证您设置的每个验证控件。您可以从与页面相关的客户端检查几个值,请参阅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>
Run Code Online (Sandbox Code Playgroud)

您还可以使用客户端函数获取页面上的验证器数组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-和-net-4-0-series.aspx