我在这里有这样的设置:
$(document).on("click", "#updateLocation", function() {
$('.radio_btn').each(function(index) {
console.log($(this).val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="progressForm">
<input type="text" readonly="readonly" value="question 1">
<label><input type="radio" name="isActive[1]" value="1" class="radio_btn">done</label>
<label><input type="radio" name="isActive[1]" value="0" class="radio_btn">not yet done</label>
<input type="text" readonly="readonly" value="question 2">
<label><input type="radio" name="isActive[12]" value="1" class="radio_btn">done</label>
<label><input type="radio" name="isActive[12]" value="0" class="radio_btn">not yet done</label>
<input type="text" readonly="readonly" value="question 3">
<label><input type="radio" name="isActive[35]" value="1" class="radio_btn">done</label>
<label><input type="radio" name="isActive[35]" value="0" class="radio_btn">not yet done</label>
<button type="button" id="updateLocation">Update</button>
</form>
如您所见,name-attribute不遵循关于数字索引的特定模式。但是,我有一个单选按钮“OK”和“NOT OK”。由于它们具有相同的名称,因此只能检查其中一个选项。
现在,我想在jQuery中评估这些值。
正如您可能已经看到的那样,这不起作用,因为看起来,DOM
(正如预期的那样)会覆盖以前的值。我需要处理每个复选框,因为这两个值都是有效的,需要插入我的数据库中。
如何从单选按钮获取值(无论是否选中)?
假设
在我的each
- 函数中,我应该得到值1
,0
,1
。也许我只是盲目地看到解决方案,但它对我来说看起来非常基本。
另外,我能以某种方式从当前的迭代复选框中以某种方式获取索引(1,12,35 ..)吗?
答案 0 :(得分:1)
选择要循环的:checked
无线电并使用substring
获取索引:
$(document).on("click", "#updateLocation", function() {
$('.radio_btn:checked').each(function(index) {
var name = $(this).attr('name');
console.log(name.substring(name.indexOf('[') + 1, name.length - 1));
console.log($(this).val());
});});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="progressForm">
<input type="text" readonly="readonly" value="question 1">
<label><input type="radio" name="isActive[1]" value="1" class="radio_btn">done</label>
<label><input type="radio" name="isActive[1]" value="0" class="radio_btn">not yet done</label>
<input type="text" readonly="readonly" value="question 2">
<label><input type="radio" name="isActive[12]" value="1" class="radio_btn">done</label>
<label><input type="radio" name="isActive[12]" value="0" class="radio_btn">not yet done</label>
<input type="text" readonly="readonly" value="question 3">
<label><input type="radio" name="isActive[35]" value="1" class="radio_btn">done</label>
<label><input type="radio" name="isActive[35]" value="0" class="radio_btn">not yet done</label>
<button type="button" id="updateLocation">Update</button>
</form>