javascript - 复选框选中输入需要,如果复选框未选中则不需要输入
问题描述
这是我的html
<input type="checkbox" name="checked" id="check" onclick="unlocking()">
<label for="checkbox">If checked</label>
<fieldset id="unlock" style="display:none;">
<input type="text" name="Name" value="Name" id="inside" required>
<input type="text" name="email" value="email" id="inside" required>
<input type="text" name="Adress" value="Adress" id="inside" required>
</fieldset>
这是我的 js,具有隐藏和显示字段集的功能。
function unlocking() {
var checkBox = document.getElementById("check")
var form = document.getElementById("unlock")
if(checkBox.checked) {
form.style.display="block";
}else {
form.style.display="none";
}
}
如果显示字段集,我希望输入是必需的,如果不只是跳过它。
解决方案
您可以遍历每个孩子并将其required
属性设置为true
或false
取决于复选框是否被选中,如下所示:
for (child of form.children) {
child.required = true;
}
请检查以下片段:
function unlocking() {
var checkBox = document.getElementById("check");
var form = document.getElementById("unlock");
if (checkBox.checked) {
form.style.display = "block";
for (child of form.children) {
child.required = true;
console.log(child);
}
} else {
form.style.display = "none";
for (child of form.children) {
child.required = false;
console.log(child);
}
}
}
<input type="checkbox" name="checked" id="check" onclick="unlocking()" />
<label for="checkbox">If checked</label>
<fieldset id="unlock" style="display: none;">
<input type="text" name="Name" value="Name" id="inside" />
<input type="text" name="email" value="email" id="inside" />
<input type="text" name="Adress" value="Adress" id="inside" />
</fieldset>
推荐阅读
- charts - 在 pine 脚本中的一系列条形中找到顶部和底部
- android-studio - 什么是 Android App Bundle (.aab) 文件 MIME 类型?
- mysql - mysql时添加case的多个结果
- css - 如何在 stenciljs 中使用 sass @use?已知问题?
- azure - 来自 Azure Application Insights 警报通知的逻辑应用 HTTP 请求 JSON
- javascript - Javascript 映射数组中的对象数组
- javascript - 使用数组查询数据库的更好方法
- angularjs - 将 keydown 事件定位到 angularJS 自定义指令
- neo4j - Neo4j-graphql-js -- 有没有办法检查可选参数是否存在或不为空?
- c++ - 文件 I/O 分配