1

我四处搜索,但无法找到关于如何使用 jquery 验证检查提交前必须在引导单选按钮组中选择其中一个按钮的答案。

我有这个作为表格的一部分,

<div id="inputNumDel" name="inputNumDel" class="btn-group" data-toggle="buttons-radio">
        <button type="button" id="num7"  class="btn ">7</button>
        <button type="button" id="num8"  class="btn ">8</button>
</div>

这给出了这个在此处输入图像描述

这是无效的验证码

$(document).ready(function(){

            $("#form").validate({
                rules:{                     
                    inputNumDel:{
                            required:true,
                    },

            },          
            errorClass: "help-block"
            });

     });
4

2 回答 2

3

我必须解决同样的问题,并在类似的问题上发布了我的解决方法,在这里:

针对 twitter 引导按钮组的 jQuery 验证

虽然您无法验证按钮本身(或者实际上是您的按钮组 div),但您可以使用按钮将其值存储在隐藏字段中,然后验证隐藏字段。

这是我为上述链接答案制作的一个工作示例:http: //jsfiddle.net/geekman/W38RG/18/

基本上,您想要执行以下操作:

  • 在您的 btn-group DIV 下方添加一个隐藏字段。在 btn 组中的按钮上使用单击事件,并将隐藏字段的值设置为某个相应的值,具体取决于按钮。

  • 然后使用 jQuery validate 再次验证隐藏字段而不是您的按钮组。

  • 使用不忽略隐藏字段validate()的选项调用。

所以像:

<div id="inputNumDel" name="inputNumDel" class="btn-group" data-toggle="buttons-radio">
    <button type="button" id="num7" value="7"class="btn ">7</button>
    <button type="button" id="num8" value="8" class="btn ">8</button>
</div>
<!-- Notice here that I have marked the hidden field as required, so jQuery validate should recognise it as required, allowing you to leave out your required rule -->
<input required type="hidden" id="inputNum" required="required" />

<script type="text/javascript">
$(document).ready(function () {
    //Bind the click event to the parent div containing both buttons. Tell it to fire on any element containing the class btn.
    $('#inputNumDel').on('click', '.btn', function () {
        $('#inputNum').val($(this).val());
    });

    $('#form').validate({
        ignore: [],
        errorClass: "help-block"
    });
});
</script>
于 2013-10-07T17:42:45.417 回答
1

您不能使用 jquery validate 来使按钮元素成为“必需”。

您将需要一个复选框或一个单选按钮或其他输入元素。jQuery mobile 有一个具有类似效果的 checkboxradio 小部件,但使用单选按钮或复选框。

于 2013-06-17T08:17:13.407 回答