我有多个这样的广播组:
<input type="radio" name="sex" value="male">
<input type="radio" name="sex" value="female">
<input type="radio" name="length" value="tall">
<input type="radio" name="length" value="short">
等等..
我的目标是找出页面上的所有无线电组。所以在这种情况下,它会返回sex, length
到目前为止,我能够获得所有输入信息,但我不确定从何处开始。
var radio_groups = [];
$("input[type=radio]").each(function(e){
//get the name
var name = this.attr('name');
});
答案 0 :(得分:1)
如果你想要的只是一个具有键名称的对象可以:
var radios ={};
$("input[type=radio]").each(function(e){
radios[this.name] = true;
});
console.dir(radios);
/* if want to convert to array */
var radioArray= Object.keys(radios);
的 DEMO 强>
答案 1 :(得分:0)
使用indexOf()
检查您是否已经看过该名称:
var radio_groups = [];
$("input[type=radio]").each(function(e) {
var name = $(this).attr('name');
if (radio_groups.indexOf(name) < 0)
radio_groups.push(name);
});
console.log(radio_groups);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="radio" name="sex" value="male">
<input type="radio" name="sex" value="female">
<input type="radio" name="length" value="tall">
<input type="radio" name="length" value="short">
&#13;
答案 2 :(得分:0)
您的选择器选择名称属性以group开头的所有输入元素,它不会过滤掉唯一名称
如果您只想打印不同的组名,那么
var group = {};
$('input[name=*][type="radio"]').each(function (index) {
var name = this.name;
var elemValue = $(this).val();
if (!group[name]) {
group[name] = true;
console.log(elemValue);
}
});
答案 3 :(得分:0)
如果您想获取复选框的值,您可能需要考虑将收音机包装在表单标签中。像这样:
<form id="f1">
<input type="radio" name="sex" value="male">
<input type="radio" name="sex" value="female">
<input type="radio" name="length" value="tall">
<input type="radio" name="length" value="short">
</form>
然后你就可以得到每个人的价值:
var lenghtVal = document.forms[0].length.value;
var sexVal = document.forms[0].sex.value;
根据您的具体情况替换表单数组的索引。
答案 4 :(得分:0)
试试这个:
http://jsfiddle.net/76bhs444/1/
点击f12并在控制台中查看。这应该是你想要的。
// get all radio names
var radio_groups = $("input[type=radio]").map(function(e){
return $(this).attr('name');
}).get();
console.log(radio_groups);
// filter duplicates
radio_groups = $.grep(radio_groups, function(value, index) {
return $.inArray(value, radio_groups) === index;
});
console.log(radio_groups);