2014-09-19 56 views
0

我在一個頁面中使用兩種形式的歐芹js。我想觸發歐芹驗證器,當我點擊一個類型='按鈕'字段並驗證第一個窗體只檢查窗體的3個字段。最初在表單中包含大約7個字段用於驗證。到目前爲止,我無法讓它工作。嘗試this但沒有運氣。如何驗證只使用香菜js選定的字段

有什麼想法嗎?

更新:這是我的代碼;

<div class = 'two'> 
    <input type='text' id='firstname' name='firstname' /> 
</div> 
$('#form').parsley({ 
    excluded: '.two input' 
}); 
$('#form').parsley('validate'); 

我只是試圖排除一個字段,並測試表單是否正在驗證,因爲我希望它是。但是它仍然驗證了CSS類'two'中的輸入字段。這就是我迄今爲止所做的一切。不知道..

+0

您可以發佈到目前爲止,還是更好的HTML和JavaScript,創建一個jsfiddle,所以我們可以測試它?你是否嘗試過'data-parsley-group'來驗證表單的一部分? – 2014-09-19 17:57:58

+0

嗨,我添加了我的代碼 – guitarlass 2014-09-22 03:36:26

回答

9

你有幾個問題與您的代碼,特別是與這一行:

<dir classs = 'two'> 

,應該是

<div class = 'two'> 

也就是說,你有dir而不是divclasss而不是class。您還應該使用$('#form').parsley().validate()而不是$('#form').parsley('validate')

下面的代碼將工作:

<form method='post' id='form'> 
    <div class = 'two'> 
     <input type='text' id='firstname' name='firstname' required /> 
    </div> 
    <div> 
     <input type='text' id='thisisrequired' name='thisisrequired' required /> 
    </div> 
    <button type="button" id="submit-form">Submit</button> 
</form> 

<script> 
    $(document).ready(function() { 
     $('#form').parsley({ 
      excluded: '.two input' 
     }); 

     $("#submit-form").on('click', function() { 
      $('#form').parsley().validate(); 
      if ($('#form').parsley().isValid()) { 
       console.log('valid'); 
      } else { 
       console.log('not valid'); 
      } 
     }); 
    }); 
</script> 

可以在this jsfiddle


對於您的情況下查看一個更完整的工作示例,您應該考慮使用data-parsley-groupsee the docs)來實現相同的結果用下面的代碼:

<form method='post' id='form'> 
    <div> 
     <input type='text' id='firstname' name='firstname' data-parsley-group="first" 
      required /> 
    </div> 
    <div> 
     <input type='text' id='thisisrequired' name='thisisrequired' 
      data-parsley-group="second" required /> 
    </div> 
    <button type="button" id="submit-form">Submit</button> 
</form> 

<script> 
    $(document).ready(function() { 
     $('#form').parsley(); 

     $("#submit-form").on('click', function() { 
      $('#form').parsley().validate("second"); 
      if ($('#form').parsley().isValid()) { 
       console.log('valid'); 
      } else { 
       console.log('not valid'); 
      } 
     }); 
    }); 
</script> 

兩者的區別在於,在第一個示例中,您重新定義了excluded選項。在第二個示例中,您將使用data-parsley-group並僅驗證該組。

有關完整示例,請訪問this jsfiddle(您可以測試它並將$('#form').parsley().validate("second");更改爲$('#form').parsley().validate("first");以查看會發生什麼情況)。

+0

'dir'和'classs'是拼寫錯誤。謝謝 – guitarlass 2016-01-12 09:45:13

0

只是一個添加到上面的答案,isValid參數來正常工作, 使用組名太,即$( '#形式')。香菜()。參考isValid(「第二」))。

<script> 
    $(document).ready(function() { 
     $('#form').parsley(); 

     $("#submit-form").on('click', function() { 
      $('#form').parsley().validate("second"); 
      if ($('#form').parsley().isValid(**"second"**)) { 
       console.log('valid'); 
      } else { 
       console.log('not valid'); 
      } 
     }); 
    }); 
</script>