Parsley.js密码确认不起作用。

8

我遇到了Parsley.js框架的问题。

我的问题是密码和确认密码的输入相同,但当我单击提交按钮时,会出现错误消息。

这是我的测试网站:

http://topkosmetikstudios.de/release/index.php?article_id=21

(德语中passwort = password,password wiederholen = password confirm)

这是我的代码:

<div class="half right">
    <p>
        <label for="category" class="dropdown_label">Passwort</label>
        <input type="password" data-equalto="#eqalToModel" name="passwort" data-required="true" <?php echo ($_POST['passwort'])? $_POST['passwort']:""; ?>>
    </p>

</div>
<div class="half left">
    <p>
        <label for="category" class="dropdown_label">Passwort wiederholen</label>
        <input type="password" data-equalto="#eqalToModel" name="passwort_w" data-required="true">
    </p>
</div>

我使用了Parsley.js中的参数data-equalto="#elem",但它没有起作用。
这里是Parsley.js的文档:http://parsleyjs.org/documentation.html 有人能看出我的代码存在什么问题导致它不能正常工作吗?

哦,我找到了我的错误。这个问题已经关闭了。 - Dave-88
该死,你的 bug 是什么?我也遇到了同样的问题! - Pherrymason
我猜测这个 bug 是因为 #eqalToModel 引用了一个元素 id,但是在 HTML 标签中并没有找到它! - mandril
1
如果你解决了问题,将你的解决方案添加到下面的答案中,然后将其标记为“已采纳”。 - Mikepote
4个回答

19

你可能使用了错误的标签,因为自 Parsely.js 2.0 版本以来:

data-parsley-equalto="#anotherfield"

1
直接解决方案 - Er. Amit Joshi
如果确认密码为空,则此代码无法正常工作,因为它会跳过验证。 - K K

4
如果您想在提交表单之前确保密码1密码2相同,那么根据文档(http://parsleyjs.org/doc/#psly-validators-list)的说明,您需要为要匹配的字段设置一个id。并将第一个字段设置为查找第二个字段id,反之亦然。

Equalto #2.0 data-parsley-equalto="#anotherfield" 验证该值与另一个字段的值完全相同(用于密码确认检查)。

请参见下面的示例代码:
<div class="half right">
    <p>
       <label for="category" class="dropdown_label">Passwort</label>
       <input id="passwort" type="password" data-equalto="#passwort_w" name="passwort" data-required="true">
    </p>

</div>
<div class="half left">
    <p>
        <label for="category" class="dropdown_label">Passwort wiederholen</label>
            <input id="passwort_w" type="password" data-equalto="#passwort" name="passwort_w" data-required="true">
     </p>
</div>

如果想了解更多关于Parsley.js的内容,请查看他们的文档。如果这正是您所需要的,请将其标记为答案。谢谢!


0
<div class="half right">
    <p>
       <label for="category" class="dropdown_label">Passwort</label>
       <input id="passwort" type="password" name="passwort" data-required="true" id="passwort">
    </p>

</div> <div class="half left">
    <p>
        <label for="category" class="dropdown_label">Passwort wiederholen</label>
            <input id="passwort_w" type="password" data-equalto="#passwort" name="passwort_w" data-required="true">
     </p> </div>

data-equalto="#id_of_compare_field" 数据等于 "#比较字段的ID"

3
建议您阅读《最小化、完整化和可验证化的示例》,以改进您的示例。 - IlGala
我建议你改善你的“关注你的业务” ;) - Heril Muratovic

0

尝试为第一个密码输入设置一个id(即“password”),然后将第二个输入的data-equalto属性设置为相同的值(即“#password”),它应该可以正常工作。如果它不起作用,您可能希望检查parsley.js是否正确加载。希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接