2014-03-03 31 views
2

我正在使用parsley驗證來驗證註冊表單。我的問題是我有一個輸入,只有當用戶選中一個複選框時纔會啓用。那麼,如何讓歐芹驗證只有在複選框被選中時的輸入?當滿足條件時使用parsley驗證表單

<form name="form1" method="POST" data-validate="parsley"> 
您是如何知道我們的? :
 <ul class="checklist"> 
     <li> 
      <input name="Internet" id="Internet" value="Internet" data-mincheck="1" data-group="mygroupp" type="checkbox"> 
      <label>Internet</label> 
     </li> 
     <li> 
      <input name="Newspaper" id="Newspaper" value="Newspaper" type="checkbox" data-mincheck="1" data-group="mygroupp"> 
      <label>Newspaper</label> 
     </li> <li> 
      <input name="Others" id="Others" class="input_control" value="Others" type="checkbox"/ data-mincheck="1" data-group="mygroupp" onClick="enable_text(this.checked)"> 
      <label>Others, Please Specify:</label> 
     </li> 
     </ul> 
     <p> 
     <input type="text" name="Otherinput" id="Otherinput" class="quter-width align-right margin_top_5" data-required="true" disabled="disabled" > 
     </p> 

驗證了checkboxs工作正常,但我想補充驗證了當「其他」複選框被選中 誰能告訴我請它才能通過驗證「otherinput」輸入字段。 在此先感謝。

+0

您需要首先展示努力。這就像街頭乞丐在某種程度上,你的標誌只是說「GIMME」。你需要更華麗的東西 - 至少「上帝保佑...請幫助請幫助」 – Coffee

+0

發佈你的代碼,你到現在爲止已經嘗試過。這也會幫助你學習。 –

回答

1

我不認爲Parsley.js開箱即可提供此功能。取而代之的是,你可以通過註冊一個onchange事件偵聽器,像這樣編寫自定義它:

$('input#others').change(function() { 
    if (this.checked) { 
    $('#otherinput').attr('disabled', 'false'); 
    } else { 
    $('#otherinput').attr('disabled', 'true'); 
    } 
}); 

注:這是假定小寫的ID名稱(即「otherinput」而不是「Otherinput」)。

我還沒有測試過,但是像這樣的東西應該在理論上起作用。

1

荷蘭芹依靠jQuery(> = 1.6),需要在包括歐芹之前調用。

然後,您可以使用parsley.js unminified文件或parsley.min.js縮小一個。這些文件和其他版本(Remote,Extras ..)在這裏可用。

最後,將data-parsley-validate添加到您想要驗證的每個數據。

這看起來很像是:

<script src="jquery.js"></script> 
<script src="parsley.min.js"></script> 

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

它isValid()方法,如果驗證是成功地滿足/返回你真正的,所以你可以檢查表單是否具有有效的數據或沒有。