JavaScript 获取 Radio 选中值及未选中处理方案

作者:异步漫步时间:2026-10-27 16:05:21浏览:268

本文介绍如何在 JavaScript 中获取单选框(Radio)的选中值,并处理未选择任何选项的情况。通过原生 DOM 操作和 jQuery 两种方式,演示如何读取选中项的值及关联文本,并提供表单提交前的验证逻辑,确保用户必须做出选择。

Radio 选中值获取与提交验证

以下示例参考了网络上的规范写法,虽未经过实际测试,但结构清晰,可作为实现参考。


具体代码实现如下所示:

 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>text</title>
<script>
var chk = 0;
window.onload=function (){
var chkObjs = document.getElementsByName("radio");
for(var i=0;i<chkObjs.length;i++){
if(chkObjs[i].checked){
chk = i;
break;
} 
} 
} 
function check_radio(){
var chkObjs = document.getElementsByName("radio");
for(var i=0;i<chkObjs.length;i++){
if(chkObjs[i].checked){
if(chk == i){
alert("radio值没有改变不能提交");
break;
} 
} 
} 
} 
</script>
</head>
<body>
<form action='' method='post' onsubmit='javascript:return check_radio()'>
<input type='radio' value='1' name='radio' checked='checked'>一;
<input type='radio' value='2' name='radio'>二;
<input type='radio' value='3' name='radio'>三;
<input type='radio' value='4' name='radio'>四;
<input type='radio' value='5' name='radio'>五;
<input type=submit value=sub >
</form>
</body>
</html>

未选择状态下的值获取与处理

接下来演示如何在未进行选择时获取 Radio 的值或进行提示。


相关 HTML 结构如下:

 
<input type="radio" name="money" value="1" />美元
<input type="radio" name="money" value="2" />日元
<input type="radio" name="money" value="3" />欧元

使用原生 JavaScript 方式:需要注意的是,原生 DOM 操作会将文本节点也视为节点,因此需要使用 nextSibling 来获取紧随其后的文本内容。


原生 JS 获取代码如下:

 
var 美元 = document.getElementsByName("money")[0].nextSibling.nodeValue;
var 日元 = document.getElementsByName("money")[1].nextSibling.nodeValue;
var 欧元 = document.getElementsByName("money")[2].nextSibling.nodeValue;

如果使用 jQuery 方式,可以通过选择器直接获取选中项后的 span 内容。


jQuery 获取代码如下:

 
$('input[name="money"]:checked').next('span').html();
<input type="radio" name="money" value="1" checked="checked" /><span>美元</span>
<input type="radio" name="money" value="2" /><span>日元</span>
<input type="radio" name="money" value="3" /><span>欧元</span>
<!--正常情况下,创建复选框或单选框时通常会使用 label 标签将其关联,例如:-->
<input id="radio1" type="radio" name="money" value="1" /><label for="radio1">美元</label>

判断单选框是否被选中

以下部分主要展示如何判断用户是否进行了选择。



该逻辑仅用于判断是否有选项被选中。


验证函数代码如下:

 
function radioValue(){
var radArr = document.getElementsByName("radiov");
var radValue = "";
//alert(radArr.length);
for(var i=0; i<radArr.length; i++){
//alert(radArr[i].checked+" "+radArr[i].name + " "+ radArr[i].value);
if(radArr[i].checked){
radValue = radArr[i].value;
} 
} 
if(radValue != null && radValue != ""){
alert(radValue);
}else{
alert("请选择");
} 
} 

<input type="button" value="测试radio中获取数据" onclick="radioValue();"/>

作者最新文章