【发布时间】:2023-04-05 06:27:01
【问题描述】:
我的 HTML 中有两个单选按钮。至少其中一个必须为“是”。我想在用户点击第二个时检查值(如果是“是”,那么我们不在乎,如果是“否”,那么我们必须检查第一个的值是多少)。我尝试使用此 JavaScript 代码,但它不起作用。 有人可以帮我吗?谢谢。
<div class="form-row">
<div class="form-group col-md-4">
<label class="form-text">Show email.</label>
</div>
<div class="form-group col-md-8">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active">
<input type="radio" name="email" id="yes" value="yes" autocomplete="off" checked="checked"> Yes
</label>
<label class="btn btn-secondary">
<input type="radio" name="email" id="no" value="no" autocomplete="off"> No
</label>
</div>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label class="form-text">Show number.</label>
</div>
<div class="form-group col-md-8">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label class="btn btn-secondary active">
<input type="radio" name="number" id="yes" value="yes" autocomplete="off" checked="checked"> Yes
</label>
<label class="btn btn-secondary">
<input type="radio" name="number" id="no" value="no" autocomplete="off" onclick="check(this)"> No
</label>
</div>
</div>
</div>
<script language='javascript' type='text/javascript'>
function check(input) {
if (document.getElementById('email').value == "no" && document.getElementById('number').value == "no")
{
input.setCustomValidity('One must be yes.');
} else {
// input is valid -- reset the error message
input.setCustomValidity('');
}
}
</script>
【问题讨论】:
-
您在重复 ID(是和否)。这在网络标准中是无效的。
-
另外,您正试图通过 id 来查找收音机,但它们上没有与其名称匹配的 id。您应该在它们上放置一个通用类,然后找到选定的类。
标签: javascript html radio-button