Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript检查是否选中了单选按钮?_Javascript_Radio - Fatal编程技术网

Javascript检查是否选中了单选按钮?

Javascript检查是否选中了单选按钮?,javascript,radio,Javascript,Radio,我已经找到了这样做的脚本,但它们只使用一个单选按钮名称,我有5个不同的单选按钮集。我如何检查它是否已被选中?我正在尝试表单提交 if(document.getElementById('radiogroup1').value=="") { alert("Please select option one"); document.getElementById('radiogroup1').focus(); return false; } 不起作

我已经找到了这样做的脚本,但它们只使用一个单选按钮名称,我有5个不同的单选按钮集。我如何检查它是否已被选中?我正在尝试表单提交

if(document.getElementById('radiogroup1').value=="") {
        alert("Please select option one");
        document.getElementById('radiogroup1').focus();
        return false;
    }

不起作用。

这里有一个很好的教程->


//返回选中单选按钮的值
//如果未选中任何字符串,则返回空字符串,或
//没有单选按钮
函数getCheckedValue(radioObj){
如果(!radioObj)返回“”;
var radioLength=radioObj.长度;
如果(放射长度==未定义)
如果(radioObj.已选中)返回radioObj.值;
否则返回“”;
对于(var i=0;i
您对jquery满意吗?如果是:

$(document).ready(function(){
    if($('input[type=radio]:checked').length == 0)
    {
        alert("Please select option one");         
        document.getElementById('radiogroup1').focus();         
        return false;     
    }
}

如果您一心想使用标准JavaScript,那么:

功能定义

var isSelected = function() {
    var radioObj = document.formName.radioGroupName;

    for(var i=0; i<radioObj.length; i++) {
        if( radioObj[i].checked ) {
            return true;
        }
    }

    return false;
};
if( $('input[type=radio][name=radioGroupName]:selected').length == 0 ) {
    alert('Please select an option from group 1 .');
}
我建议使用。它有许多选择器选项,当它们一起使用时,可以将大部分代码简化为一行

替代解决方案

var isSelected = function() {
    var radioObj = document.formName.radioGroupName;

    for(var i=0; i<radioObj.length; i++) {
        if( radioObj[i].checked ) {
            return true;
        }
    }

    return false;
};
if( $('input[type=radio][name=radioGroupName]:selected').length == 0 ) {
    alert('Please select an option from group 1 .');
}

一个非常简单的功能是:

<script type="text/javascript">

function checkRadios(form) {
   var btns = form.r0;
   for (var i=0; el=btns[i]; i++) {
     if (el.checked) return true;
   }
   alert('Please select a radio button');
   return false;
}
</script>

<form id="f0" onsubmit="return checkRadios(this);">
  one<input type="radio" name="r0"><br>
  two<input type="radio" name="r0"><br>
  three<input type="radio" name="r0"><br>
  <input type="submit">
</form>

功能检查收音机(表格){
var btns=form.r0;
对于(var i=0;el=BTN[i];i++){
如果(el.checked)返回true;
}
警报(“请选择一个单选按钮”);
返回false;
}
一个
两个
三个

但是,默认情况下,您应该始终选择一个单选按钮(即使用select属性),一些用户代理可能会自动选择第一个按钮。然后,您只需要检查默认值(通常是第一个)是否已选中。

为什么不使用oneliner?

我写了这段代码,如果至少检查了一个收音机,它将提交表单:

(function(el){for(var i=el.length;i--;) if (el[i].checked) return el[i].form.submit()||1})(document.form_name.radio_name)||alert('please select item')
否则它将发出警报。或者您也可以将其修改为与表单的
onsubmit
一起使用:

return (function(el){for(var i=el.length;i--;) if (el[i].checked) return 1})(document.form_name.radio_name)||alert('please select item')
只需相应地替换
表单名称
收音机名称


查看它的工作原理:

$(document).ready(function(){
使用
$(function()使jQuery变得更简单{
。它们都是相同的东西,只是后者较新,并且在doc reday check中运行更多的跨浏览器过滤,并且更符合jquey的风格。因此,通过简单的jQuery样式调用
if($('input.classnameIsEasier')。is(':checked'){/*do work*/},if语句在jQuery中的效果更好
还有一件事,如果您要使用jquery,并且需要对收音机和检查等进行表单验证,那么请使用great来调整表单以获得更多功能和更好的验证时间。根据规范,页面上的两个元素不应具有相同的id。
文档。getElementsById()
是错误的。[s after
元素
]。它应该是
document.getElementById()
document.getElementsByClassName[]()
我知道这是一个老版本,但在一行中编写所有代码并不能使代码成为“一行代码”;避免这种做法。你实际上是错的。它们是可以内联工作的一行代码。请看小提琴来了解它们是如何工作的。如果你不能理解它的作用……那么最好不要评论。这个答案是ancient(在网络时代),所以现在要注意IE<8都死了。可能是
return (function(el){for(var i=el.length;i--;) if (el[i].checked) return 1})(document.form_name.radio_name)||alert('please select item')