最初に基本的なユーザー情報を取得するマルチパートフォームがあり、フィールドが入力されているかどうか、および電子メールアドレスが有効かどうかを確認するための jquery.validate エラーチェックがあります。
その下には、新しいアカウント、アカウントの削除、新しいソフトウェアなどの一連のチェック ボックス (type_of_request) があり、これらのフォーム要素がチェックされている/チェックされていないときに表示/非表示になります。
対応する type_of_request 項目がチェックされている場合にのみ、フォームの必須セクションを検証したいと思います。
更新情報
これは素晴らしい解決策ですが、選択したセクションのすべての子が必要になるようです。
典型的なシナリオは、type_request の電子メールとその他のチェックボックスの両方が選択されていることです。
<div id="email" style="display: block;"> // shown because other has been selected in the type request
<input id="email_new_account" class="sq-form-field" type="checkbox" value="0" name="q4836:q1"/> // not required
<input id="email_new_account_name" class="sq-form-field" type="text" name="q4836:q2"/> // if email_new_account checked then make required
<input id="email_new_account_access" class="sq-form-field" type="text" name="q4836:q2"/> // if email_new_account checked then make required
<input id="email_new_account_manager" class="sq-form-field" type="text" name="q4836:q3"/> // if email_new_account checked then make required
<input id="email_add_remove_access" class="sq-form-field" type="checkbox" value="0" name="q4837:q1"/> // not required
<input id="email_add_remove_account_name" class="sq-form-field" type="text" name="q4837:q2"/> // if email_add_remove_access checked then make required
<input id="email_add_access" class="sq-form-field" type="text" name="q4836:q2"/> // if email_add_remove_access checked then make required
<input id="email_remove_access" class="sq-form-field" type="text" name="q4837:q3"/> // if email_add_remove_access checked then make required
</div>
<div id="other" style="display: block;"> // shown because other has been selected in the type request
<input id="other_describe_request" class="sq-form-field" type="text" name="q4838:q1"/> // required because #other was checked in type request
<input id="other_request_justification" class="sq-form-field" type="text" name="q48387:q2"/> // required because #other was checked in type request
</div>
参考文献
これをさらに見直したところ、入力項目のクラスに次を追加できることがわかりました
class="{required:true, messages:{required:'Please enter
your email address'}}"
また
class="{required:true, email:true, messages:{required:'Please enter
your email address', email:'Please enter a valid email address'}}"
しかし、追加すると
class="{required:'input[@name=other]:checked'}"
http://jquery.bassistance.deサイトで説明されていたが、動作しません。これを機能させるには、構文を変更する必要がありますか?