4

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

4

3 回答 3

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>

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

于 2013-07-23T21:52:15.193 回答
2

我不得不承认这是一个 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>
​

带有自定义验证方法和一点hacky的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/

不过要解决的有趣问题:-)

于 2012-05-16T21:13:32.200 回答
2

我在哪里(或最终):

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

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

  • @jason 对使用 jQuery 验证插件验证单选按钮组的参考也得到了回报。我对这一切的最后一点困惑是,该页面上有一些关于如何不需要 bassistance 验证插件的讨论——jQuery (1.3.2??) 可以自己进行验证。可能是,但我想不通。

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

于 2012-05-17T00:32:14.223 回答