【问题标题】:How to get jQuery Tools validation working on a group of radio buttons?如何让 jQuery 工具验证在一组单选按钮上工作?
【发布时间】:2012-05-16 20:28:21
【问题描述】:

只是想不通...(从长时间的网络搜索来看,我不是唯一一个。)否则我的 jQT 验证工作正常;只是不适用于收音机——我要做的就是确认至少有一个按钮已被点击。我一直在尝试通过 $.tools.validator.fn 设置自定义验证功能,但我找不到适合用于选择器的东西。查看源代码时我运气不佳。有什么建议吗?谢谢!

【问题讨论】:

标签: jquery validation jquery-tools


【解决方案1】:

我在哪里(或结束):

  • 我放弃了尝试让 jQuery 工具中的验证内容与单选按钮一起使用。

  • @MK_Dev 让我走上了使用 jQuery 验证插件 (http://bassistance.de/jquery-plugins/jquery-plugin-validation/) 的道路,非常感谢。但是,不需要他回答中的其他方法-我通过加载验证插件来获得单选按钮验证,为其中一个单选按钮提供“必需”类,并在表单上调用 .validate() 。工作正常。

  • @jason 对Validation of radio button group using jQuery validation plugin 的引用也得到了回报。我对这一切的最后一点困惑是,该页面上有一些关于如何不需要 bassistance 验证插件的讨论——jQuery (1.3.2??) 可以自己进行验证。可能是,但我想不通。

无论如何,我现在有了一些有效的验证,这比我今天早些时候可以说的要多。谢谢大家!

【讨论】:

    【解决方案2】:

    我让它工作了。他们没有在 jQueryTools Validator 文档中提供任何单选按钮示例:http://jquerytools.org/documentation/validator/index.html

    这里是相关的源代码。

    在页眉中,包括:

    <script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>
    
    <script>
    $(document).ready(function() {
      $("#myform").validator();
    });
    </script>`
    

    在页面正文中:

    <form id="myform" name="myform" method="post" action="next-page.php">
      <label>Option One</label>
        <input type="radio" required="required" name="RadioGroup1" id="RadioButton_1" />
      <label>Option Two</label>
      <input type="radio" required="required" name="RadioGroup1" id="RadioButton_2" />
        <label>Option Three</label>
      <input type="radio" required="required" name="RadioGroup1" id="RadioButton_3" />
    
      <input type="submit" name="continue_to_next_page" id="submit" value="Continue" />
    </form>
    

    让我们知道它是否适合您。

    【讨论】:

      【解决方案3】:

      我不得不承认这是一个 hack,需要根据您的需要进行调整。这是我想出的,可能还有更好的选择。

      示例标记:

      <form action="" id="theForm">
          <fieldset>
          <input type="radio" name="sex" value="male" id="male" class="requiredCheckbox" /> <label for="male">Male</label><br />
          <input type="radio" name="sex" value="female" id="female" /> <label for="female">Female</label><br/>
          <input type="radio" name="sex" value="unknown" id="unknown" /> <label for="unknown">Unknown</label>
          </fieldset>
      
          <input type="button" id="validate" value="Validate" />
      </form>
      ​
      

      带有自定义验证方法和一些小技巧的Javascript:

      $.validator.addMethod('requiredCheckbox', function (val, elt) {
          var valid = false;
      
          $('input[name=' + $(elt).attr('name') + ']:radio').each(function(inx, elt) {
              if (elt.checked === true) {
                  valid = true;
                  return;
              }
          });
      
          return valid;
      }, 'Select at least one checkbox');
      
      var options = {
          errorPlacement: function(error, elt) {
              $(elt).before(error);
          },
          errorElement: 'div'
      };
      var validator = $('#theForm').validate(options );
      
      $('#validate').click(function() {
          $('#theForm').valid();
      });​
      

      这是带有工作示例的 JSFiddle:http://jsfiddle.net/9DRcz/

      要解决的有趣问题 :-)

      【讨论】:

      • 一个好的开始!有一个问题是我正在寻找一种方法来让 jQuery 工具(不是原始 jQuery)中的验证器工作,因为我在代码的其他地方使用了它。但我必须有单选按钮验证,所以我可能不得不接受它并切换到有效的代码。我可能会在这方面提供更多信息......
      猜你喜欢
      • 2012-02-07
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多