ASP.我能处理“ASP. NET”吗?. NET客户端验证已成功.javascript中的事件

ASP.NET - Can I handle the "ASP.NET client-side validation has succeeded" event in javascript?

本文关键字:NET ASP 成功 javascript 事件 验证 处理 客户端      更新时间:2023-09-26

我有一个带有添加到购物车按钮的产品页面

当单击添加到购物车按钮时,使用ASP验证两个输入字段。. NET验证控件(使用客户端验证来防止在无效输入时发生回发)。

为了防止双击向购物车中添加多个项目,我想在初始单击后禁用添加到购物车按钮,但只有在验证成功的情况下。(如果仅仅因为输入错误而禁用"添加到购物车",那将是相当糟糕的)

是否有可能处理"在ASP上"?. NET客户端验证成功"事件在javascript?

我可能最终会为这个页面滚动我自己的验证机制。

只是一个例子,但您可以根据需要采用它:

标记:

<asp:button id="bla" runat="server" Text="bla" onClientClick="ValidationCatcher()" />

脚本:

function ValidationCatcher()
{
    //force .net validation
    Page_ClientValidate();
    for(i=0; i < Page_Validators.length; i++)
    {
        if(!Page_Validators[i].isvalid)
        {
            //do whatever you need to do
        }
    }     
}

基于rick schott在验证成功后隐藏按钮的答案,&如果用户点击转义:

,则重新显示按钮
<asp:Button ID="btnProcess" runat="server" Text="Donate" OnClick="BtnProcessClick" ValidationGroup="donate" ClientIDMode="Static" onClientClick="HideBtnProcess()">

<div id="pWait" >Please wait...</div>
<script type="text/javascript">
$(document).ready(function() {
    $("#pWait").hide();
});
function HideBtnProcess() {
    if (Page_ClientValidate("donate")) {
        $("#btnProcess").hide();
        $("#pWait").show();
        $(document).keyup(function (event) {
            if (event.which === 27) {
                $("#btnProcess").show();
                $("#pWait").hide();
            }
        });
    }
}