我有一组单选按钮,名称="rb_Select"。
我添加了一个简单的单选按钮验证,以确保至少有1个单选按钮被选中,但我现在看到我的语法是我的javascript函数写错了。
基本上,我要检查的是if else语句中的true/false值。然而,我意识到,如果没有单选按钮被选中,那么我得到多个假值。假设我有8个单选按钮,当我调试时,我得到8个警报窗口。
如果我选择1个单选按钮,那么我得到一个真和7假。但那不是我想要的。
我想要的是只有真没有假。我不确定语法应该是什么。我显然做错了什么。
下面是提交函数:
var $ = jQuery;
$("#pError").hide();
$("#LocInfo").hide();
$(".submit-button").click(function() {
var rb = document.getElementsByName('rb_Select');
for (var i = 0; i < rb.length; i++)
{
if (rb[i].checked == true)
{
alert('Value=' + rb[i].value + 'TRUE');
var myURL = rb[i].value;
window.open(myURL);
} else {
alert('Value=' + rb[i].value + 'False');
$("#pError").fadeIn();
var fade_out = function() { $("#pError").fadeOut(); }
setTimeout(fade_out, 3000);
};
}
});
您可以使用选择器input[type='radio'][name='rb_Select']:checked
和length方法来查看是否选中了单选。
试试这个:
var $ = jQuery;
$("#pError").hide();
$("#LocInfo").hide();
$(".submit-button").click(function() {
var radios = $("input[type='radio'][name='rb_Select']:checked");
if(radios.length > 0){
alert('Value=' + radios.val() + 'TRUE');
window.open(radios.val());
} else{
alert('Value=' + radios.val()+ 'False');
$("#pError").fadeIn();
var fade_out = function() { $("#pError").fadeOut(); }
setTimeout(fade_out, 3000);
};
}
});