欧芹数据 - 等于不工作

时间:2013-04-18 20:00:41

标签: javascript parsley.js

我正在尝试使用Parsley.js来匹配密码,但它似乎不起作用。这是代码:

    <div class="control-group">
      <!-- Password-->
      <label class="control-label" for="password">Password</label>
      <div class="controls">
      <div class="input-prepend">
        <span class="add-on"><i class="icon-eye-close"></i></span>
        <input type="password" id="password" name="password" placeholder="" class="input-xlarge" data-trigger="change" data-required="true" data-minlength="6">
      </div>
        <p class="help-block">Password should be at least 4 characters</p>
      </div>
    </div>
    <!-- ************ NOT WORKING *************** -->
    <div class="control-group">
      <!-- Password -->
      <label class="control-label"  for="password_confirm">Password (Confirm)</label>
      <div class="controls">
      <div class="input-prepend">
        <span class="add-on"><i class="icon-eye-close"></i></span>
        <input type="password" id="password_confirm" name="password_confirm" placeholder="" class="input-xlarge" data-equalto="#password" data-trigger="change focusout" data-required="true" >
      </div>
        <p class="help-block">Please confirm password</p>
      </div>
    </div>

此部分 data-equalto =“#password”应该进行检查,但似乎无效。

我将这样的形式称为欧芹验证:

<form class="form-horizontal" id="userForm" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" data-focus="first" data-validate="parsley">

3 个答案:

答案 0 :(得分:4)

在这几个小时里一直在努力,找到答案JoelCDoyle。我想重新进行迭代,因为虽然问题已经过时,但Joel提供的答案仍有效。谢谢! :)

        <input type="password" name="pw" id="pw"
          parsley-minlength="8"
          parsley-required="true"
        />
        <input id="pwtwo" type="password" name="pw-verify"
          data-parsley-equalto="#pw"
          parsley-required="true"
        />

这是使比较函数与parsley.js一起工作所需的属性:     data-parsley-equalto="#pw"

答案 1 :(得分:1)

我不确定这对你有帮助,但我在这里有一个有用的解决方案:http://codepen.io/anon/pen/KNyjoY

基本安装

<form data-parsley-validate>
...
</form>

Javascript安装(我正在使用此功能)

<form id="form">
...
</form>

<script type="text/javascript">
  $('#form').parsley();
</script>

我为#password添加了一个事件,以触发#cpassword表单验证。

$('#password').on('change input keyup', function() {
    if (this.value) {
      $('#cpassword').prop('required', true).parsley().validate();
    } else {
      $('#cpassword').prop('required', false).parsley().validate();
    }
  });

答案 2 :(得分:0)

在最新的Parsley版本中,您不再通过“data-”属性调用API。不太确定,如果您的版本就是这种情况(我知道数据值过去有效),但请尝试使用新API。

因此,您调用与“parsley-validate”属性不同的表单,如果设置为True,则为True。并且使用“parsley- [constraint]”调用约束。 正如官方Parsley.js网站所述,它不太兼容W3C,但对于一些奇怪的原因,他喜欢它。然而,他还提供了一个解决方案,为Parsley定义一个命名空间,使其与W3C兼容。

如果你能提供旧的欧芹版本,我也可以看一下。

<强>注意

这个答案(也许是问题)已过时。 答案可能不再有效,请继续关注此答案的评论。