javascript - 单击提交js条件需要多个复选框
问题描述
我目前正在尝试制作一个表单,其中需要多项内容,例如姓名电子邮件等需要提交表单这是我一直在尝试的方式。在 checkbox.value 我试过 <2. 这里也是 html 中复选框的代码。
if (checkbox.value ) {
messages.push('Two intrests must be selected')
}
<div class="form-check form-check-column">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Sports" id="Box" value=1> Sports
</label>
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Reading" id="Box" value=1> Reading
</label>
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Hacking" id="Box" value=1> Hacking
</label>
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Gaming" id="Box" value=1> Gaming
</label>
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Other" id="Box" value=1 > Other
</label>
解决方案
您可以将一个简单的 id 添加到复选框的容器中,然后为每个选中的复选框加上一个计数器 +1 以检查是否等于或加上 2,例如:
function Check()
{
var howmuch = 0;
var container = document.getElementById('container');
var checkbox = container.querySelectorAll('input[type="checkbox"]');
//You can use short without var like document.getElementById('container').querySelectorAll('input[type="checkbox"]')
checkbox.forEach(function(item) {
if(item.checked){howmuch += 1}
});
if(howmuch >= 2){
console.log('ok');
}else{
console.log('MUST BE 2 or +');
}
}
<div class="form-check form-check-column" id="container">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Sports" id="Box" value=1> Sports
</label>
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Reading" id="Box" value=1> Reading
</label>
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Hacking" id="Box" value=1> Hacking
</label>
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Gaming" id="Box" value=1> Gaming
</label>
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="Other" id="Box" value=1 > Other
</label>
</div>
<button onClick="Check();">simulate form</button>
显然你会console.log
用一个动作来改变我的,比如alert
if is not ok 和 form submit if is ok (记得event.preventdefault()
在检查一切是否正常之前使用防止提交)
推荐阅读
- java - 如何创建未分页但已排序的 Pageable.of(unpaged, unpaged, Sort ) 到 spring 数据 jpa 存储库?
- c# - 接口方法有接口参数但想在实现中使用类参数
- java - 如何在 JPA 中使用给定 SQL 模型的继承
- java - 无法在 freemaker TemplateMethodModelEx 实现上自动装配
- r - 异常值是否用于计算 ggplot2 中箱形图中的分位数?
- java - ManyToMany - JPA - 如何从映射生成的表中获取数据?
- css - javascript google map 缩放到零时为空的灰色背景
- javascript - 如何在 Javascript 中获取 CSS 值并将其保存为变量?
- c# - 如何将选定的复选框移动到复选框列表的顶部
- c++ - 为什么vector会导致Segmentation fault Error?