获取一组单选按钮的值数组

3

给定一个单选按钮数组,我要如何获取它们的值(包括null)?例如给定:

// use jquery to display [Yes, null, null, No]
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
    true     <input type="radio" name="one" value="Yes" checked>
    false    <input type="radio" name="one" value="No">
    </p>
    <p>
    true     <input type="radio" name="two" value="Yes">
    false    <input type="radio" name="two" value="No">
    </p>
    <p>
    true     <input type="radio" name="three" value="Yes" >
    false    <input type="radio" name="three" value="No" >
    </p>
    <p>
    true     <input type="radio" name="four" value="Yes">
    false    <input type="radio" name="four" value="No" checked >
    </p>

我该如何获得[是,空,空,否]?


1
请您把JS代码也包含进来,以便更好地理解您所面临的问题。如果您不知道从哪里开始,请查看此链接:http://api.jquery.com/map/ - Scaramouche
不清楚您想要什么。在哪种情况下您期望为空?如果单选按钮被选中或未被选中对您意味着什么? - Ozan Ertürk
2个回答

3

1. 您需要检查每个 <p> 中被选中的单选框长度

2. 如果长度为0,则将NULL推送到数组中,否则将选中的单选按钮值推送到数组中

工作代码片段:

$(document).ready(function(){
  var radio_arr = [];
  $('p').each(function(){
    radio_arr.push($(this).find('input[type=radio]:checked').length ? $(this).find('input[type=radio]:checked').val() : 'NULL');
  });
  console.log(radio_arr);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
    true     <input type="radio" name="one" value="Yes" checked>
    false    <input type="radio" name="one" value="No">
    </p>
    <p>
    true     <input type="radio" name="two" value="Yes">
    false    <input type="radio" name="two" value="No">
    </p>
    <p>
    true     <input type="radio" name="three" value="Yes" >
    false    <input type="radio" name="three" value="No" >
    </p>
    <p>
    true     <input type="radio" name="three" value="Yes">
    false    <input type="radio" name="three" value="No" checked >
    </p>


是的,我确实需要null值。 - Bryan Dellinger
@BryanDellinger 很高兴能帮助你 :):) - Alive to die - Anant

0

您可以迭代每个单独的输入组,并返回具有 checked 属性的值:

var groups = ['one', 'two', 'three','four'];
var result = [];

groups.forEach(function(group,i){
  result[i] = $('input[name='+group+']:checked').attr('value')  
});

console.log(result); // will print ["Yes", undefined, undefined, "No"]

这里有一个可行的例子。你的HTML目前将第三和第四组都命名为“three”,所以我将最后一个更改为“four”,以更好地匹配你想要的结果。

如果你真的想要null作为响应,只需添加一个条件语句来返回null,如果值=== undefined,但似乎没有用处。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接