2013-12-18 40 views
0

我基本上想要做的是檢查值,用戶在輸入字段中輸入兩個單獨的數組。一個是會產生錯誤的單詞數組,另一個是會引發警告的單詞數組。 我創建了這兩個函數,他們似乎很好地工作時,他們與兩個不同的領域添加兩個驗證器到Parsley.js

, warning: function() { 
     var that = this; 
     return { 
      validate: function (val,arrayRange) { 
        var warningWords = new Array(); 
        warningWords[0]="Cricket"; 
        warningWords[1]="Football"; 
       for (var i = 0; i < warningWords.length; i++) { 
         if(val.toLowerCase()===warningWords[i].toLowerCase()) 
          return false; 
       } 
       return true; 
     } 
     , priority: 32 
     } 
    } 
    , wrong: function() { 
     var that = this; 
     return { 
      validate: function (val,arrayRange) { 
        var errorWords = new Array(); 
        errorWords[0]="Justin"; 
        errorWords[1]="Chester"; 
       for (var i = 0; i < errorWords.length; i++) { 
         if(val.toLowerCase()===errorWords[i].toLowerCase()) 
          return false; 
       } 
       return true; 
     } 
     , priority: 32 
     } 
    } 

和HTML

<label for="email">ERROR :</label> 
<input name="message1" id="error" parsley-trigger="keyup" parsley-wrong="" ></input> 

<label for="message">Warning</label> 
<input name="message" parsley-trigger="keyup" parsley-warning=""></input> 
<button type="submit">Submit</button> 

結合是否有可能這兩個功能結合在同一輸入字段? 其次,我希望在警告的情況下輸入字段背景將變成黃色,並在錯誤的情況下,它應該變成紅色 我已經擺脫了歐芹錯誤類。但是,我可以創建另一個類,當警告函數使表單失效時觸發。

第三,即使警告函數導致該字段無效,也可以提交表單嗎? 通過JS很容易實現,所以我們可以如何阻止歐芹停止表單驗證。

回答

0

對於Q1,您應該可以在同一個輸入上擁有多個自定義驗證器,就像您可以使用多個parsley的內置驗證器一樣。如果您想強迫某人首先進行驗證,請提高或降低優先級。

作爲對Q2的迴應,您可以將其他類添加到輸入以修改香菜錯誤樣式。這裏有一個例子:

input.parsley-error { 
    background-color: #f00; 
} 

input.parsley-error.warning { 
    background-color: #ff0; 
} 

所以,如果你有相同的輸入字段都驗證器,你可以有警告驗證添加.warning語句類,當它返回false並返回true時刪除類。

對於Q3,即使'isFormValid'參數爲false,您也應該能夠通過覆蓋'onFormValidate'偵聽器並儘可能返回true來提交表單,儘管存在驗證問題。

$('#formId').parsley({ 
    listeners: { 
     onFormValidate: function(isFormValid, event, ParsleyForm) { 
      return true; 
     } 
    } 
}); 
+0

您可以在單個字段上使用多個parsley的內置驗證器嗎?我一直無法找到一個這樣的例子。你有一個例子嗎? – Kieveli