jQuery验证插件条件必需字段

前端之家收集整理的这篇文章主要介绍了jQuery验证插件条件必需字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了 jQuery validate plugin的问题.我有一组3个单选按钮,如果选择前两个中的任何一个,则在表单上显示用户额外的选择输入,如果选择了第三个,则没有任何反应.

如果他们从单选按钮组中选择选项1或2,我希望用户需要从附加选择输入中选择一些内容.

我已经为第一个选项编写了代码,但它无法正常工作.如果我没有选择任何单选按钮选项,我会得到两个必填字段错误(一个用于单选按钮设置,另一个用于隐藏的选择输入,不应该验证).

select是自定义代码,它有一些jQuery来控制它. jQuery将所选值放入隐藏的输入工资带中

我的代码是:

HTML

  1. <!-- radio button select -->
  2. <label>Earnings</label>
  3. <div class="multiple-select earnings-wrapper clearfix">
  4. <div class="third">
  5. <input id="job-earnings-salary" class="trigger" data-type="salary"
  6. type="radio" name="jobearnings" value="salary" required="true">
  7. <label for="job-earnings-salary">Salary</label>
  8. </div>
  9. <div class="third">
  10. <input id="job-earnings-hourly" class="trigger" data-type="hourly"
  11. type="radio" name="jobearnings" value="hourly" required="true">
  12. <label for="job-earnings-hourly">Hourly</label>
  13. </div>
  14. <div class="third">
  15. <input id="job-earnings-unspecified" class="trigger" data-type="none"
  16. type="radio" name="jobearnings" value="unspecified" required="true">
  17. <label for="job-earnings-unspecified">Unspecified</label>
  18. </div>
  19. <input type="hidden" name="earningstype" id="earnings-type" class="trigger-input" value="">
  20. </div>
  21.  
  22.  
  23. <!-- First select Box -->
  24. <label for="salaryband">Salary Band</label>
  25. <div class="select">
  26. <span class="select-default">Select Salary Band</span>
  27. <div class="options">
  28. <?PHP
  29. $args = array(
  30. 'hide_empty' => false,'orderby' => 'ID',);
  31. $salaries = get_terms('salaries',$args);
  32. foreach( $salaries as $salary ) :
  33. echo '<span data-value="'.$salary->term_id.'">'.$salary->name.'</span>';
  34. endforeach;
  35. ?>
  36. </div>
  37. <input type="hidden" name="salaryband" id="salaryband" class="salary-band" />
  38. </div>

验证jQuery:

  1. $("#client-form").validate({
  2. focusInvalid: false,ignore: [],rules: {
  3. salaryband: {
  4. required: {
  5. depends: function(element) {
  6. return $("#job-earnings-salary:checked");
  7. }
  8. }
  9. }
  10. }
  11. });

尽管有条件要求的规则,为什么它始终验证选择输入的任何想法?

解决方法

$(“#job-earnings-salary:checked”)返回一个jQuery对象,它始终是真实的
  1. $("#client-form").validate({
  2. focusInvalid: false,rules: {
  3. salaryband: {
  4. required: function(element) {
  5. return $('#job-earnings-salary').is(':checked')
  6. }
  7. }
  8. }
  9. });
  1. <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script>
  2. <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script>
  3. <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script>
  4.  
  5. <form id="client-form">
  6. <!-- radio button select -->
  7. <label>Earnings</label>
  8. <div class="multiple-select earnings-wrapper clearfix">
  9. <div class="third">
  10. <input id="job-earnings-salary" class="trigger" data-type="salary" type="radio" name="jobearnings" value="salary" required="true">
  11. <label for="job-earnings-salary">Salary</label>
  12. </div>
  13. <div class="third">
  14. <input id="job-earnings-hourly" class="trigger" data-type="hourly" type="radio" name="jobearnings" value="hourly" required="true">
  15. <label for="job-earnings-hourly">Hourly</label>
  16. </div>
  17. <div class="third">
  18. <input id="job-earnings-unspecified" class="trigger" data-type="none" type="radio" name="jobearnings" value="unspecified" required="true">
  19. <label for="job-earnings-unspecified">Unspecified</label>
  20. </div>
  21. <input type="hidden" name="earningstype" id="earnings-type" class="trigger-input" value="">
  22. </div>
  23.  
  24.  
  25. <!-- First select Box -->
  26. <label for="salaryband">Salary Band</label>
  27. <div class="select">
  28. <span class="select-default">Select Salary Band</span>
  29. <div class="options">
  30. </div>
  31. <input type="hidden" name="salaryband" id="salaryband" class="salary-band" />
  32. </div>
  33. <input type="submit" class="button" value="Submit" />
  34. </form>

猜你在找的jQuery相关文章