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