【问题标题】:check if dynamically loaded radio group is selected using jquery检查是否使用 jquery 选择了动态加载的无线电组
【发布时间】:2013-11-29 14:31:25
【问题描述】:

我有一组如下所示的单选按钮。

<input type="radio" name="multi[1]" value="value-1">
<input type="radio" name="multi[1]" value="value-2">

<input type="radio" name="multi[2]" value="value-3">
<input type="radio" name="multi[2]" value="value-4">

<input type="radio" name="multi[3]" value="value-5">
<input type="radio" name="multi[3]" value="value-6">
<input type="radio" name="multi[3]" value="value-7">

<input type="radio" name="multi[n]" value="value-n">
<input type="radio" name="multi[n]" value="value-n">
<input type="radio" name="multi[n]" value="value-n">

如果这些组是动态加载的,那么如何检查每个组中的选项是否被选中?

更新:

num_group = 2;
for(i = 1; i <= num_group; i++){
   if(!$('input[name="multi['+i+']"]').is(':checked')){
         alert('Please select elective subjects '+i+'!');
         return false;
   }
}

如何动态计算num_group?这里

【问题讨论】:

  • 请向我们展示无效的代码。请记住,Stackoverflow 不是为您编写代码,而是帮助您编写代码。向我们展示您已经为自己解决问题付出了一些努力。

标签: jquery


【解决方案1】:

您必须检查document 是否为ready,然后将change 事件绑定到文档。

这会考虑到任何动态加载的元素(change 函数仍然会在这些元素上触发)。

$(document).ready(function(){
    $(document).on('change', 'input[type=radio]', function(){
        console.log($(this).val())
    });
});

【讨论】:

    【解决方案2】:

    这实际上取决于您想要进行的验证类型。

    如果您尝试在某个特定时间验证单选按钮,例如,当用户按下提交按钮时,您可以相当简单地浏览所有单选按钮,例如:

    var max_radios = 1; // keep this updated as radio buttons are added
    $('#validate').click(function() {
        for (i = 1; i <= max_radios; i++) {
            console.log('Radio ' + i + ' is ' + 
                        ($('[name="multi[' + i + ']"]:checked').val() == undefined ? 'unchecked' : 'checked') + '<br />');
        }
    })
    

    Link to jsFiddle

    如果您希望在用户添加/单击单选按钮时进行实时验证,这会有点棘手。在这种情况下,只要添加了一个新的单选按钮,您就希望发布一条验证消息,指示用户应该进行选择,并且一旦选择了一个值,验证消息就会消失。让我知道这是否是您想要的。

    【讨论】:

    • 谢谢!使用 multi[index] 遍历无线电组很有用,经过一些修改后我能够做到这一点。 (更新的问题)但是,我有一个问题。我们如何计算这里的 num_group?如果我们在提交表单时验证这些字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2013-03-17
    相关资源
    最近更新 更多