2013-04-18 61 views
4

我想匹配使用Parsley.js密碼,但它似乎並不奏效。下面是代碼:香菜數據equalto不工作

<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> 

這部分數據equalto =「#密碼」應該做的檢查,但它似乎並沒有工作。

我打電話的形式驗證香菜,像這樣:

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

誰是你,凱文?你看見什麼了?! http://xkcd.com/979/ – Backus

+0

嘗試,而不是 '數據equalto' 數據香菜-equalto「(退房http://parsleyjs.org/doc/index.html#psly-validators-list)。 它爲我工作parsley.js版本2.2 –

回答

0

在最新版本香菜,你不通過「數據 - 」屬性再調用API。不太確定,如果這是您的版本(我知道數據值過去工作過),但嘗試與新的API。

因此與您通話的財產「香菜 - 驗證」這是真的,如果設置的形式不同。約束用「parsley- [constraint]」調用。如官方Parsley.js網站所述,它與W3C不太兼容,但對於一些奇怪的原因,他喜歡這樣。不過,他也給出了一個解決方案,爲Parsley定義了一個命名空間,使其與W3C兼容。

如果你能提供的舊版本香菜,我會對那看看了。

注意

這個答案(也許問題)發佈日期。 答案可能無效,請繼續閱讀關於此答案的評論。

+1

好了,現在是2015年。從Parsley的網站:「Parsley使用特定的DOM API,它允許您直接從DOM配置幾乎所有東西,無需編寫單個JavaScript配置行或自定義函數Parsley的默認DOM API是data-parsley-,這意味着如果在配置中你看到一個foo屬性,它可以通過使用data-parsley-foo =「value」的DOM設置/修改。「 –

+0

Parsley在那個答案時間相對年輕,它演變得非常快,爲驗證表格提供了一個更可靠的解決方案。 我會用筆記標記我的anser,它的日期,我不考慮重寫它,因爲問題也可能註明日期:) – Panade

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"

+0

如何更改消息? – themis

0

我不知道這是否會幫助你,但我在這裏有一個可行的解決方案: 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(); 
    } 
    });