jQuery detect在单选按钮中选择
问题描述:
我想用单选按钮构建窗体,我需要检测是否所有无线电都选择了蜜蜂。jQuery detect在单选按钮中选择
这是相当简单的功能.change。在我的情况:
$('input:radio').change(function() {
alert($('[name|="pyt10"]:checked').val() + "/" + $('[name|="pyt11"]:checked').val() + "/"+
})
但这里是一个小问题 - 我有3组无线电。当我选择第一个收音机时,警告显示我,所有字段都是未定义的,在第二个选择第一个收音机有值后,但第二个仍未定义,等等。
这意味着,我的警报显示更改前的无线电值,而不是之后。
选择后应该如何写电台值?
答
为了您的眼前的问题,“在这里我需要的,如果所有无线电已蜜蜂选择来检测”,您可以使用此:
var radios = $('input:radio').on("click", function() {
alert(radios.length === radios.filter(":checked").length);
});
答
你并不远关闭。而不是提醒
$('[name|="py10"]:checked
确保它的检查
if ($('[name|="py10"]').is(':checked')) {
}
答
你也可以通过输入回路:
$('input:radio').change(function(){
myArray = new Array();
$('input:radio').each(function(){
this.checked ? myArray.push(this.value) : myArray.push("notChecked");
})
alert(myArray.join("/"))
})
答
另一种方法:如果你有包裹(或可换)电台带有表格标签的组可以检查是否有与组一样多的值:
$('#radios').on('change', ':radio', function() {
var form = $(this).closest('form'),
full = form.serializeArray().length == 2;
console.log(full);
});
如果该组中的一个无线电按钮被选中
form.serializeArray()
将返回与每个无线电设备组的值的数组。
答
看着刚刚在你有一个语法错误,因为你还没有尾随)
尝试关闭它的JavaScript警报以下
$('input:radio').change(function() {
var $this = $(this);
var group1Val = $('[name|="pyt10"]:checked').val();
var group2Val = $('[name|="pyt11"]:checked').val();
var group3Val = $('[name|="pyt12"]:checked').val();
$('.output').html(
'Value of radio button clicked: '+ $this.val() + '<br><br>'
+ 'Value of radio button checked for group 1: '
+ group1Val + ' <br>'
+ 'Value of radio button checked for group 2: '
+ group2Val + ' <br>'
+ 'Value of radio button checked for group 3: '
+ group3Val + ' <br>'
);
//alert($('[name|="pyt10"]:checked').val() + "/" + $('[name|="pyt11"]:checked').val() + "/"+
});
这里是上面一个JSFIDDLE。
由于您正在使用':checked',因此只会在检查时按名称选择元素。你可能想要把它关掉。 – Ian 2013-05-02 13:41:04
我想检查值,但什么是问题 - 电台没有被选中 - 默认值“未定义”,我选择它的值改变为“1”,但警报仍然显示“未定义”,第二次选择后显示“1”...警报值落后一步,它显示更改前的值... – Ilkar 2013-05-02 13:49:55