我有2 name
个输入(group1
和group2
)。如何获得其中一个name
s?
<input type="radio" name="group1" value="Milk"> Milk<br>
<input type="radio" name="group1" value="Butter" checked> Butter<br>
<input type="radio" name="group1" value="Cheese"> Cheese
<hr>
<input type="radio" name="group2" value="Water"> Water<br>
<input type="radio" name="group2" value="Beer"> Beer<br>
<input type="radio" name="group2" value="Wine" checked>
例如,如果我检查group2
(“啤酒”)中的第二个单选框,它将返回2.
根据反馈修改:demo;仍然没有工作。
答案 0 :(得分:2)
您需要找到每个组的已检查元素,然后找到它的索引。确保在index()
函数内部进行过滤,否则它将在所有兄弟中提供索引,而不仅仅是该组的输入。
var group1Index = $('input[name="group1"]:checked').index('input[name="group1"]');
var group2Index = $('input[name="group2"]:checked').index('input[name="group2"]');
编辑请注意,index()功能为0索引。
答案 1 :(得分:1)
您可以使用javascript循环按钮,并返回已选中的按钮:
function getRadioValue(RadioName)
{
var colRadio = document.getElementsByName(RadioName);
for (var i = 0; i < colRadio.length; i++)
{
if (colRadio[i].checked)
{
return colRadio[i].value;
}
return null;
}
vValue = getRadioValue("group1");
答案 2 :(得分:1)
返回名为“group1”的已检查输入元素的基于0的索引
$('input[name="group1"]:checked').index()
答案 3 :(得分:0)
我不确定你要做什么。几乎所有其他答案都是关于 index(),但在你的情况下,第二个单选按钮index()不会像你想要的那样返回2,它将返回1 作为索引基于0。
This jsfiddle显示如何获取特定组中所选输入的索引/值/得分/数字,以及如何总结所有选定单选按钮的值。
<form id="myForm">
<h3>First Group</h3>
<input type="radio" name="group1" value="the-first" data-points="0">First</input>
<input type="radio" name="group1" value="the-second" data-points="20">Second</input>
<input type="radio" name="group1" value="the-third" data-points="300">Third</input>
<hr>
<h3>Second Group</h3>
<input type="radio" name="group2" value="four" data-points="4">4</input>
<input type="radio" name="group2" value="five" data-points="5">5</input>
<input type="radio" name="group2" value="six" data-points="6">6</input>
<hr>
<input type="submit" value="Submit" />
</form>
和javascript / jQuery(使用alert代替console.log进行演示):
$(function () {
$("#myForm").submit(function () {
//This gets the checked input in group1
var g1 = $("input[name='group1']:checked");
alert("Group 1 \n Selected Value: " + g1.val() + " \n Selected Index: " + g1.index() + "\n Points: " + g1.data('points'));
var totalPoints = 0;
//This loops through all checked inputs
$.each($("input:checked"), function () {
totalPoints += $(this).data("points");
});
alert("Total points from all groups: " + totalPoints);
return false; //remove if you want to submit
});
});
答案 4 :(得分:0)
您可以使用$.index():
$('input[type=checkbox]').click(function(){
var idx = $(this).index();
// do whatever with the index
});
在上面的代码(以及提供的示例)中,重要的是复选框被分组在仅包含它们的容器中,因为index
返回一个数字,表示关于其容器的元素的索引。