javascript - 香草javascript中的单选按钮检查不起作用
问题描述
我的单选按钮检查不起作用。谁能帮我解决这个问题?我想检查单选按钮是否被选中。如果未选中,那么我希望该程序发出警报。但是在这个程序中,只要未选中单选按钮,我就不会收到警报。
<div>
<label for="gender">Gender: </label>
<input type="radio" name="myRadio"> Male
<input type="radio" name="myRadio"> Female
<input type="radio" name="myRadio"> Other
</div>
单选按钮检查功能如下:
function radioCheck(){
var radio = document.forms["myForm"]["myRadio"].value;
for (var i=0; i<radio.length; i++) {
if (radio[i].checked){
break;
}else
{
alert("No radio button is checked");
}
}
}
解决方案
好的,这是工作代码:
function radioCheck(){
const radioList = document.getElementsByName("myRadio")
let notChecked = false;
for(let i = 0; i < radioList.length; i ++){
if(radioList[i].checked){
return;
} else {
notChecked = true;
}
}
if(notChecked){
alert("No radio button is checked")
}
}
radioCheck()
解释:
- 首先,您必须通过 using 获取所有输入,
document.getElementsByName
因为它们唯一相同的是name
属性,name="myRadio"
在此示例中 - 第二件事我添加了变量
notChecked
,该变量在初始时为假,因此当它将遍历所有输入并看到其中一个未选中时是否会显示警报 - 然后你只需执行正常的 for 循环,遍历所有元素并检查它们是否被检查
- 如果其中一个被选中,它只会停止 for 循环并且不返回任何内容,否则它会设置
notChecked = true
- 循环后我只检查
notChecked
值是否为真,如果是则显示警报 - 最后也是重要的事情 - 你必须至少运行一次这个函数才能执行它,所以你只需
radioCheck()
在最后添加 - 我还在html中添加了这部分
<button onclick={radioCheck()} > run again </button>
所以单击按钮后,"run again"
您可以再次使用它(仅用于测试)
这是工作示例:
希望我的回答对您有所帮助:) 如果您有任何问题,请提出
推荐阅读
- python - PyQt5 角色和 MVC
- html - 使用beautifulsoup4刮掉西里尔文字
- java - JavaFX:调整大小时滚动条不可见
- html - 为什么 yii 邮件程序没有读取我的 css 文件?
- python - 如何为我的图表创建边列表?
- reactjs - 我无法在 React.js 项目“TypeError:无法读取未定义的属性 'title'”中呈现我的数据库中的数据
- javascript - 在 JavaScript 中访问 iframe 的 cookie
- c# - 如何在 asp.net core api 的服务中获取 JWT 令牌信息?
- javascript - 无法使用 npx install 命令创建-react-app
- spring-cloud-config - 无法获得适用于 Azure Spring Cloud Config Server 的公钥/私钥身份验证