2015-06-12 65 views
2

我需要在Parsley驗證中獲取元素的屬性,我可以使用jQuery和選擇器,但我認爲這不是最好的方法,有另一種方法來做到這一點?如何在歐芹驗證中訪問元素屬性

見下面我的驗證和HTML代碼:

(function() { 
 
    'use strict'; 
 

 
    // Validate xml extension. 
 
    window.ParsleyValidator.addValidator('filetype', 
 
     function (value, requirement) { 
 
     var ext = value.split('.').pop().toLowerCase(); 
 

 
     return ext === requirement; 
 
     }, 32) 
 
    .addMessage('en', 'filetype', 'The selected file must be an %s file.'); 
 
}());
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> 
 
<script src="http://cdn.bootcss.com/parsley.js/2.0.7/parsley.js"></script> 
 

 
<div class="container"> 
 
    <form class="form-horizontal" role="form" data-parsley-validate> 
 
    <div class="form-group"> 
 
     <label for="file" class="col-sm-2 control-label">File</label> 
 
     <div class="col-sm-4"> 
 
     <input type="file" 
 
      name="file[]" 
 
      id="file" 
 
      class="form-control" 
 
      multiple="multiple" 
 
      data-buttonText="Escolha arquivo" 
 
      data-iconName="fa fa-folder-open" 
 
      data-parsley-filetype="xml" 
 
      required> 
 
     </div> 
 
    </div> 
 
    <div class="form-group"> 
 
     <div class="col-sm-10 col-sm-offset-2"> 
 
     <button type="submit" class="btn btn-default">Salvar</button> 
 
     </div> 
 
    </div> 
 
    </form> 
 
</div>

+0

您的例子並不給出任何暗示,以哪個屬性你要訪問,也沒有你想要什麼用它做。 –

+0

對不起,我指的是每一個元素。 –

回答

1

當前版本並沒有真正給你機會;你需要的一切應該在requirement。不過,它可能是一個包含多個值的數組。

未來應該允許您訪問以data-parsley-filetype-開頭的任何屬性,但無法從您的示例中瞭解您實際嘗試實現的內容,因此我不知道這是否有幫助。

0

你需要直接訪問參數:

window.Parsley 
    .addValidator('customvalidator', { 
     validateNumber: function (value, requirement) { 
      var element = arguments[2].$element.parent(); 

      //logic here... 

     }, 
     requirementType: 'integer' 
    });