检索选定的单选框在JQuery中动态传递无线电名称的已检查值

时间:2011-12-09 12:13:27

标签: jquery

我有一组不同名称的单选按钮。我必须动态选择这些值。 这是一个示例代码。

    <input type="radio" id="@(item2.QuestionId):@(item3.OptionId)_mt" columnvalue="@i" value="@(item2.QuestionId):@(item3.OptionId)" name="@(item2.QuestionId)_selectedobjects" />

当我点击提交按钮时,我会得到那些数组。

   var name={748_selectedobjects, 749_selectedobject, 750_selectedobjects}

现在我需要找出为每个名字选择的收音机盒。 我怎么能在Jquery中做到这一点。

我正在尝试

       $('input[name=748_selectedobjects]:checked').Val();

如何动态传递名称?

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用attributes ends with selector然后迭代返回的元素,例如将列值存储在对象中

var checked = {};
$('input[name$=_selectedobjects]:checked').each(function(){
    //With this command you retrive the column value
     checked[$(this).attr('name')] = $(this).attr('columnValue');
 });

checked将是一个对象,对象属性是单选按钮的名称,并且值为已检查无线电的值

编辑 - 如果你需要在表单元素中找到这些对象,你应该将表单元素作为上下文传递:

var form = $('#myform_' + splitstr[0]);
$('input[name$=_selectedobjects]:checked', form)//just select those elements inside your form

答案 1 :(得分:0)

Nicola Peluchetti的答案可以正常使用,但如果你想在代码中更准确一点,那么以下内容也会有效:

for(var i = 0; i < name.length; i++){
    $(':radio[name=' + name[i] + ']:checked').val();
}

主要区别在于上面的答案将选择与选择器匹配的所有输入(选择,无线电,文本字段)(以“_selectedobjects”结尾),因为我只会选择具有所选名称的广播