我希望使用Jquery获取多个单选按钮值。但现在只能得到第一个人的价值。
<form action="get" method="post">
<table width="100%">
<tbody id="checklistwrapper">
<tr class="checklisttr" id="1">
<td align="left" width="40%"><br>
<label for="veryiii" style="align:left;">Within your circle of competence?</label>
</td>
<td align="center">
<label for="veryi" width="12%">Worst</label><br><br>
<input type="radio" id="veryi" value="5.0" name="circle">
</td>
<td align="center" width="12%"><br><br>
<input type="radio" id="vii" value="4.5" name="circle">
</td>
<td align="center" width="12%">
<label for="veryiii">Neutral</label><br><br>
<input type="radio" id="veryiii" value="3.0" name="circle">
</td>
<td align="center" width="12%"><br><br>
<input type="radio" id="viv" value="1.5" name="circle">
</td>
<td align="center" width="12%">
<label for="veryv">Best</label><br><br>
<input type="radio" id="veryv" value="1.0" name="circle">
</td>
</tr>
<tr class="checklisttr" id="2">
<td align="left" width="40%"><br>
<label for="veryiii" style="align:left;">Macro economic environment favorable?</label>
</td>
<td align="center" width="12%"><br>
<input type="radio" id="veryi" value="5.0" name="macro">
</td>
<td align="center" width="12%"><br>
<input type="radio" id="vii" value="4.5" name="macro">
</td>
<td align="center" width="12%"><br>
<input type="radio" id="veryiii" value="3.0" name="macro">
</td>
<td align="center" width="12%"><br>
<input type="radio" id="viv" value="1.5" name="macro">
</td>
<td align="center" width="12%"><br>
<input type="radio" id="veryv" value="1.0" name="macro">
</td>
</tr>
</tbody></table>
<div style="float:right;margin-top:10px;margin-bottom:5px;">
<button type="button" id="savechecklist">Save Checklist</button>
</div>
$('#savechecklist').click(function(){
var the_value;
//the_value = jQuery('input:radio:checked').val();
//the_value = jQuery('input[name=macro]:radio:checked').val();
the_value = getChecklistItems();
//alert(the_value);
});
function getChecklistItems() {
var columns = [];
$('tr.checklisttr').each(function() {
//columns.push($(this).('input:radio:checked').val());
//the_value = $(this).('input:radio:checked').val();
var the_value = jQuery('input:radio:checked').attr('id');
alert(the_value);
});
return columns.join('|');
}
答案 0 :(得分:3)
$('#savechecklist').click(function() {
var the_value;
//the_value = jQuery('input:radio:checked').val();
//the_value = jQuery('input[name=macro]:radio:checked').val();
the_value = getChecklistItems();
alert(the_value);
});
function getChecklistItems() {
var result =
$("tr.checklisttr > td > input:radio:checked").get();
var columns = $.map(result, function(element) {
return $(element).attr("id");
});
return columns.join("|");
}
答案 1 :(得分:1)
Neater解决方案
$('input:radio:checked').map(function(i, el){return $(el).val();}).get();
(显然你可以在地图之前做更多的过滤。)
这为您提供了一个值列表,然后您可以使用它来执行所需的操作,例如。 .join()
等。