我有一个多部分表单,它在开头使用一些 jquery.validate 错误检查来获取基本用户信息,以查看字段是否已填写并且电子邮件地址是否有效。
下面有一系列用于新帐户、删除帐户、新软件等的复选框 (type_of_request),它们在选中/取消选中时显示/隐藏这些表单元素。
只有在检查了相应的 type_of_request 项目后,我才想验证表单上的所需部分。
更新资料
这是一个很好的解决方案,但似乎需要选定部分的所有子项。
一个典型的场景是 type_request 中的 email 和其他复选框都被选中:
<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网站上进行了描述,但它不起作用。我是否需要更改语法才能使其正常工作?