【问题标题】:Validate form: if radio button is not checked show error message Javascript验证表单:如果未选中单选按钮,则显示错误消息 Javascript
【发布时间】:2026-01-12 13:15:01
【问题描述】:
如果未选中复选框,我会尝试显示错误消息。
我的解决方案不起作用。请看下文。不知道如何检查。
<input type="radio" name="comm">Yes
<input type="radio" name="comm">No
<div id="error_message"></div>
<button id="btn">Submit</button>
document.getElementById("btn").addEventListener("click", function(event){
event.preventDefault();
myFunction();
});
function myFunction() {
var errortxt = "";
var radios = document.getElementsByName('comm');
for(var i = 0; i < radios.length; i++) {
if (radios[i].checked = false) {
errortxt = "Error text";
} else {
errortxt = "";
}
}
document.getElementById("error_message").innerHTML = "<p>" + errortxt + "</p>";
}
【问题讨论】:
标签:
javascript
forms
validation
checkbox
【解决方案1】:
只需在 HTML 中使用 required 即可解决此问题
像这样:
<input type="radio" name="comm" required>
【解决方案2】:
你犯了一个错误,但你的思维方式很好,我确实用正确的合成器更新了你的 sn-p。
= 用于为 javascript 中的变量赋值。
在 JavaScript 中有两种比较值的运算符:严格相等 === 和“正常”(或宽松)相等 ==。
见http://2ality.com/2011/06/javascript-equality.html
for(const radio of radios){
if(!radio.checked){
errortxt = "Error text";
break; // this will break the loop when a radio is not checked (will save precious time !)
}
}
document.getElementById("btn").addEventListener("click", function(event){
event.preventDefault();
myFunction();
});
function myFunction() {
var errortxt = "";
var radios = document.getElementsByName('comm');
for(const radio of radios){
if(!radio.checked){
errortxt = "Error text";
break;
}
}
document.getElementById("error_message").innerHTML = "<p>" + errortxt + "</p>";
}
<input type="radio" name="comm">Yes
<input type="radio" name="comm">No
<div id="error_message"></div>
<button id="btn">Submit</button>