Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ClientSideEvents中的ASP.NET密码和确认_Javascript_Asp.net_Devexpress - Fatal编程技术网

Javascript ClientSideEvents中的ASP.NET密码和确认

Javascript ClientSideEvents中的ASP.NET密码和确认,javascript,asp.net,devexpress,Javascript,Asp.net,Devexpress,我有两个aspxtbox、ASPxValidationSummary和ASPxButton JS文件中有OnPasswordValidation函数 但当我键入密码后,单击Tab按钮,设置有效(错误) 在txt\u上,密码控制不起作用,但在txt\u ConfirmPassword上起作用 为什么? 函数OnPasswordValidation(s,e){ var objpassword=GetObj('txt_密码'); var objConfirmPassword=GetObj('txt_

我有两个aspxtbox、ASPxValidationSummary和ASPxButton
JS文件中有OnPasswordValidation函数
但当我键入密码后,单击Tab按钮,设置有效(错误)
在txt\u上,密码控制不起作用,但在txt\u ConfirmPassword上起作用

为什么?


函数OnPasswordValidation(s,e){
var objpassword=GetObj('txt_密码');
var objConfirmPassword=GetObj('txt_ConfirmPassword');
var password=aspxGetControlCollection().Get(objpassword.id);
var ConfirmPassword=aspxGetControlCollection().Get(objConfirmPassword.id);
if(password.GetValue()==null){
password.SetIsValid(false);
ConfirmPassword.SetIsValid(false);
返回;
}
if(ConfirmPassword.GetValue()==null){
password.SetIsValid(false);
ConfirmPassword.SetIsValid(false);
返回;
}
if(password.GetValue().length>5 | | ConfirmPassword.GetValue().length>5){
if(password.GetValue()==ConfirmPassword.GetValue()){
password.SetIsValid(true);
ConfirmPassword.SetIsValid(true);
}
否则{
password.SetIsValid(false);
ConfirmPassword.SetIsValid(false);
password.SetErrorText=“密码必须等于确认密码”;
ConfirmPassword.SetErrorText=“密码必须等于确认密码”;
}
}
否则{
ConfirmPassword.SetIsValid(false);
password.SetIsValid(false);
}
}

这不是实施验证的正确方法。这样,
OnPasswordValidation
函数执行两次,每个文本框执行一次。
下面是一个示例项目的票证,它应该满足您的需要:

我建议您阅读DevExpress控件,以了解如何在devex控件上实施验证

<dx:ASPxTextBox ID="txt_password" runat="server" Password="true" AssociatedControlID="txt_password">
    <ClientSideEvents Validation="OnPasswordValidation" />
</dx:ASPxTextBox>

<dx:ASPxTextBox ID="txt_ConfirmPassword" runat="server" Password="true" AssociatedControlID="txt_ConfirmPassword">
    <ClientSideEvents Validation="OnPasswordValidation" />
</dx:ASPxTextBox>

<dx:ASPxButton ID="btnSubmit" runat="server" Text="Submit" ClientInstanceName="btnSubmit" onclick="btnSubmit_Click" AutoPostBack="False">
<ClientSideEvents Click="function(s, e) {onClickBtnSubmit();}"/>
</dx:ASPxButton>

function OnPasswordValidation(s, e) {
    var objpassword = GetObj('txt_password');
    var objConfirmPassword = GetObj('txt_ConfirmPassword');
    var password = aspxGetControlCollection().Get(objpassword.id);
    var ConfirmPassword = aspxGetControlCollection().Get(objConfirmPassword.id);

    if (password.GetValue() == null) {
        password.SetIsValid(false);
        ConfirmPassword.SetIsValid(false);
        return;
    }
    if (ConfirmPassword.GetValue() == null) {
        password.SetIsValid(false);
        ConfirmPassword.SetIsValid(false);
        return;
    }
    if (password.GetValue().length > 5 || ConfirmPassword.GetValue().length > 5) {
        if (password.GetValue() == ConfirmPassword.GetValue()) {
            password.SetIsValid(true);
            ConfirmPassword.SetIsValid(true);
        }
        else {
            password.SetIsValid(false);
            ConfirmPassword.SetIsValid(false);
            password.SetErrorText = "Password must equal with Confirm Password";
            ConfirmPassword.SetErrorText = "Password must equal with Confirm Password";
        }
    }
    else {
        ConfirmPassword.SetIsValid(false);
        password.SetIsValid(false);
    }
}