2013-11-28 171 views
0

选择动态加载无线电组我有一组单选按钮的如下面给出的。检查是否使用jquery

<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"> 

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

UPDATE:

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?这里

+0

请告诉我们,不工作的代码。请记住,Stackoverflow不是为你编写代码,而是为了帮助你编写代码。告诉我们你已经付出了一些努力,首先自己解决问题。 –

+0

重复http://stackoverflow.com/questions/8229844/dynamical-radio-button-group-validation-in-jquery?rq=1 – mahatmanich

回答

0

您必须检查documentready然后将change事件绑定到文档。

这是考虑到被dynamiclly加载的任何要素(change函数仍会触发这些元素)。

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

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

如果你想在一个特定的时间来验证单选按钮,例如,当用户按下提交按钮,你可以只是去通过所有的无线电设备相当简单,是这样的:

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

,如果你想拥有验证过的用户添加/点击单选按钮这是一个有点麻烦。在这种情况下,只要添加了一个新的单选按钮,您就想要建立一条验证消息,指出用户应该进行选择,并且一旦选择了一个值,验证消息就会消失。让我知道如果这就是你想要的。

+0

的感谢!使用multi [index]遍历广播组是有用的,经过一些修改后,我能够做到这一点。 (更新问题) 不过,我有一个问题,虽然。我们如何计算这里的num_group?如果我们在表单提交时验证这些字段。 –