【问题标题】:Asp.NET RequiredFieldValidator and OnClientClick asp:ButtonAsp.NET RequiredFieldValidator 和 OnClientClick asp:Button
【发布时间】:2013-08-11 15:49:07
【问题描述】:

我正在用 C# 开发一个经典的 WebForms 应用程序,我有一个自定义 aspx 页面,用户可以在其中修改他们的数据(电子邮件、密码等),我有大约 3 个文本框和一个用于每个文本框的 RequiredFieldValidator 和一个

            <asp:ValidationSummary ID="ChangeUserPasswordValidationSummary" runat="server" CssClass="failureNotification" 
             ValidationGroup="ChangeUserPasswordValidationGroup"/>

我有一个提交按钮:

<asp:Button ID="ChangePasswordPushButton" runat="server" Text="Cambia password"   OnClick="ChangePwd_Click" OnClientClick="return ValidatePasswordFields();"
                     ValidationGroup="ChangeUserPasswordValidationGroup"/>

在此表单中,当我在转到服务器端“ChangePwd_Click”功能之前单击 ChangePasswordPushButton 时,如果其中一个文本框为空,我想禁用(客户端)验证器。

这些是我写的客户端函数:

function ValidatePasswordFields() {

    var oldpwd = $('#<%=txtCurrentPassword.ClientID %>').val();
    if (oldpwd == '') {
        setValidators(false);
        return true;
    } else { setValidators(true);return false; }


}


function setValidators(status) {
    ValidatorEnable(document.getElementById('<%= txtCurrentPasswordRequired.ClientID %>'), status);
    ValidatorEnable(document.getElementById('<%= ConfirmNewPasswordRequired.ClientID %>'), status);
    ValidatorEnable(document.getElementById('<%= NewPasswordRequired.ClientID %>'), status);
    return false;

}

问题是这段代码总是回发。

你能帮帮我吗? 谢谢

【问题讨论】:

    标签: asp.net validation requiredfieldvalidator onclientclick


    【解决方案1】:

    您的问题在于您在开始时返回 true 的 ValidatePasswordFields。只需将其删除:

    function ValidatePasswordFields() {
        var oldpwd = $('#<%=txtCurrentPassword.ClientID %>').val();
        if (oldpwd == '') {
            setValidators(false);
            return true;
        } else { setValidators(true);return false; }
    
    
    }
    

    【讨论】:

    • 这是我在开发过程中的错误,但是在开始时删除 return true 并不能解决我的问题 :( 我看到返回 true 会导致在启用验证器的情况下也总是回发!为什么?如果我不这样做'不要在按钮上使用 OnClientClick 事件,验证器无需回发即可工作。你能帮我吗?谢谢
    • 我使用 Page_ClientValidate 函数客户端解决了我的问题 ;)
    猜你喜欢
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多