使用密码字段验证多个表单

Posted

技术标签:

【中文标题】使用密码字段验证多个表单【英文标题】:Validate multiple forms with password fields 【发布时间】:2016-01-05 12:42:42 【问题描述】:

我遇到了一些验证问题。在我的页面上,我有多个表单,每个表单都可以更新特定用户的密码。如果用户在密码字段中输入任何内容,他们还必须在密码确认字段中输入。密码字段仅在用户输入内容时进行验证。以下是我下面的内容: html(为了您的乐趣而精简)

<form action="#" method="post" class="validateUser">
    <input type="password" class="form-control" name="password">
    <input type="password" class="form-control" name="password_again">
</form>

jQuery:

var entry;
        j$('.validateUser').each(function(index, element) 
            entry = j$(this);
            j$(this).validate(
                rules:
                    password:
                        minlength:
                            depends: entry.find("input[name='password']").val().length > 0,
                            param: 6
                        
                    ,
                    password_again:
                        minlength: 
                            depends: entry.find("input[name='password']").val().length > 0,
                            param: 6
                        ,
                        equalTo: 
                            depends: entry.find("input[name='password']").val().length > 0,
                            param: entry.find("input[name='password_again']").val()
                        
                    
                
            );
        );

jQuery 目前不工作,任何正确方向的帮助将不胜感激

【问题讨论】:

您的所有表单是否都带有与name="password"name="password_again" 相同的字段名称? @Sina 是的,我是。所有表单都具有相同的名称属性 那你能不能试着给他们分配ids,然后用input[id='uniqueid']测试,让我们知道结果(如果有的话)? 我试图避免使用唯一 ID。不过我会试一试 或者你甚至可以拥有find("#uniqueid")?好的。试试这个,检查问题是否仅仅是没有唯一的ids 或特定类的事实 【参考方案1】:

试试这个

    // Html Code 
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<form action="#" method="post" class="validateUser">
    passwrod:<input type="password" class="form-control" name="password" id="PasswordFild1">
   Conform Password: <input type="password" class="form-control" name="password_again"  id="PasswordFild2">
</form>


// Jquery Validation

$(document).ready(function()
    $("#PasswordFild2").change(function() 
     var PasswordFild1= $("#PasswordFild1").val();
     var PasswordFild2= $("#PasswordFild2").val();

        if(PasswordFild1 == PasswordFild2 )
        
           // Then Validate Both Password Match
        else
        
            alert('Enter Same password');
         // alert or error mess Print : password not match
        
          // Check input( $( this ).val() ) for validity here
        );
);

【讨论】:

虽然这确实有效,但这不是我想要的对不起。它不可扩展,不使用 jQuery Validate(因为我有其他需要验证的字段,所以需要)

以上是关于使用密码字段验证多个表单的主要内容,如果未能解决你的问题,请参考以下文章

Element UI Form表单验证

“验证错误:密码不能为空”但表单中没有密码字段

如果表单未通过验证,密码字段是不是应保留其值?

多个字段的Angular 4表单验证

Flutter:表单验证同时验证所有文本字段

带密码确认的引导 4 验证并禁用提交,直到表单验证(注册表单)