我有一台 radio 。
<label class="radio inline" for="radios-BRE2b1">
<input type="radio" name="radios-BRE2b1" id="BRE2b1" value="oui" required="" class="requiredvqradio">Oui</label>
<label class="radio inline" for="radios-BRE2b1">
<input type="radio" name="radios-BRE2b1" id="BRE2b1" value="non" required="" class="requiredvqradio">Non</label>
<label class="radio inline" for="radios-BRE2b1">
<input type="radio" name="radios-BRE2b1" id="BRE2b1" value="nsp" required="" class="requiredvqradio">Je ne sais pas</label>
好的,它无效...不是唯一的 ID。
我想创建一个函数来知道是否选择了其中一项。
function testemoi(name) {
alert(name);
$(this).find("#" + name).each(function (i, obj) {
alert(obj.attr('name'));
if (obj.is(":checked"))
alert("ok");
});
}
testemoi("radios-BRE2b1");
我认为我的函数有语法问题,但我看不出问题是什么。
感谢您的帮助。
最佳答案
由于身份的使用无效,因此您无法使用 #
选择器来查找元素。这只会找到其中一个元素,因此您需要使用属性选择器。
在 each
循环内,作为参数获得的对象是一个元素,而不是包含该元素的 jQuery 对象。
您使用字符串“radios-BRE2b1”调用该函数,但元素的 id 为 BRE2b1
。
我通过单击链接来运行该函数,以便您可以在测试之前选择单选按钮:
function testemoi(name) {
log(name);
$("[id=" + name + "]").each(function (i, obj) {
log($(obj).attr('name') + ': ' + $(obj).is(":checked"))
});
}
$(document).ready(function(){
$('.test').click(function(){
testemoi("BRE2b1");
});
});
function log(text){
$('.log').append($('<div>').text(text));
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label class="radio inline" for="radios-BRE2b1">
<input type="radio" name="radios-BRE2b1" id="BRE2b1" value="oui" required="" class="requiredvqradio">Oui</label>
<label class="radio inline" for="radios-BRE2b1">
<input type="radio" name="radios-BRE2b1" id="BRE2b1" value="non" required="" class="requiredvqradio">Non</label>
<label class="radio inline" for="radios-BRE2b1">
<input type="radio" name="radios-BRE2b1" id="BRE2b1" value="nsp" required="" class="requiredvqradio">Je ne sais pas</label>
<br>
<a href="#" class="test">Click me to test</a>
<div class="log"></div>
关于jquery函数: is a radio checked/same id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32797428/