- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否可以使用循环将以下 JS 作为函数进行循环,而不是为每个复选框 ID 编写单独的脚本?
我不太擅长 JS,但我熟悉 PHP foreach 循环 - 所以我不是完全盲目,但显然不是一回事。我也想远离 jQuery。
<input type="checkbox" id="cb1">
<input type="text" id="in1" disabled>
<input type="checkbox" id="cb2">
<input type="text" id="in2" disabled>
<input type="checkbox" id="cb3">
<input type="text" id="in3" disabled>
<input type="checkbox" id="cb4">
<input type="text" id="in4" disabled>
<input type="checkbox" id="cb5">
<input type="text" id="in5" disabled>
<input type="checkbox" id="cb6">
<input type="text" id="in6" disabled>
<script>
document.getElementById('cb1').onchange = function() {
document.getElementById('in1').disabled = !this.checked;
};
document.getElementById('cb2').onchange = function() {
document.getElementById('in2').disabled = !this.checked;
};
document.getElementById('cb3').onchange = function() {
document.getElementById('in3').disabled = !this.checked;
};
document.getElementById('cb4').onchange = function() {
document.getElementById('in4').disabled = !this.checked;
};
document.getElementById('cb5').onchange = function() {
document.getElementById('in5').disabled = !this.checked;
};
document.getElementById('cb6').onchange = function() {
document.getElementById('in6').disabled = !this.checked;
};
</script>
上面的代码目前按原样工作(只是体积庞大)...
这是一个 fiddle :https://jsfiddle.net/6j7dddzv/
<小时/>我当前的标记实际上是这样的,仅供引用:
<div class="extra-padding options-parts">
<h4><b>Replacement Parts</b></h4>
<div class="row break-on-mobile collapse">
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_hoses" id="parts-cb1" value="1"><label for="parts-hoses">Vinyl Tubing<b>:</b></label>
</div>
<div class="col-1-3"><input name="parts_hoses_n" id="parts-in1" type="number" min="1" max="20" placeholder="1 – 20"></div>
</div>
</div>
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_pumps" id="parts-cb2" value="1"><label for="parts-pumps">Pumps<b>:</b></label>
</div>
<div class="col-1-3"><input name="parts_pumps_n" id="parts-in2" type="number" min="1" max="20" placeholder="1 – 20"></div>
</div>
</div>
</div>
<div class="row break-on-mobile collapse">
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_lights" id="parts-cb3" value="1"><label for="parts-lights">Light Bulbs<b>:</b></label>
</div>
<div class="col-1-3"><input name="parts_lights_n" id="parts-in3" type="number" min="1" max="20" placeholder="1 – 20"></div>
</div>
</div>
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_trans" id="parts-cb4" value="1"><label for="parts-trans">Transformers<b>:</b></label>
</div>
<div class="col-1-3"><input name="parts_trans_n" id="parts-in4" type="number" min="1" max="20" placeholder="1 – 20"></div>
</div>
</div>
</div>
<div class="row break-on-mobile collapse">
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_river" id="parts-cb5" value="1"><label for="parts-river">River Rocks<b>:</b></label>
</div>
<div class="col-1-3"><input name="parts_river_n" id="parts-in5" type="number" min="1" max="20" placeholder="1 – 20"></div>
</div>
</div>
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_screen" id="parts-cb6" value="1"><label for="parts-screen">Mesh Divider<b>:</b></label>
</div>
<div class="col-1-3"><input name="parts_screen_n" id="parts-in6" type="number" min="1" max="20" placeholder="1 – 20"></div>
</div>
</div>
</div>
</div>
最佳答案
使用querySelectorAll
获取所有checkbox
元素,使用nextElementSibling
获取当前元素的下一个元素。
ATTRIBUTE^=VALUE
可用于查找具有以指定值开头的属性的元素。
var elems = document.querySelectorAll('[type="checkbox"][id^="cb"]');
[].forEach.call(elems, function(elem) {
elem.addEventListener('change', function() {
this.nextElementSibling.disabled = !this.checked
})
});
<input type="checkbox" id="cb1">
<input type="text" id="in1" disabled>
<input type="checkbox" id="cb2">
<input type="text" id="in2" disabled>
<input type="checkbox" id="cb3">
<input type="text" id="in3" disabled>
<input type="checkbox" id="cb4">
<input type="text" id="in4" disabled>
<input type="checkbox" id="cb5">
<input type="text" id="in5" disabled>
<input type="checkbox" id="cb6">
<input type="text" id="in6" disabled>
编辑:
var elems = document.querySelectorAll('[type="checkbox"][id^="parts-cb"]');
[].forEach.call(elems, function(elem) {
elem.addEventListener('change', function() {
this.parentElement.nextElementSibling.querySelector('input').disabled = !this.checked;
})
});
<div class="extra-padding options-parts">
<h4><b>Replacement Parts</b></h4>
<div class="row break-on-mobile collapse">
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_hoses" id="parts-cb1" value="1">
<label for="parts-hoses">Vinyl Tubing<b>:</b>
</label>
</div>
<div class="col-1-3">
<input name="parts_hoses_n" id="parts-in1" type="number" min="1" max="20" placeholder="1 – 20" disabled>
</div>
</div>
</div>
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_pumps" id="parts-cb2" value="1">
<label for="parts-pumps">Pumps<b>:</b>
</label>
</div>
<div class="col-1-3">
<input name="parts_pumps_n" id="parts-in2" type="number" min="1" max="20" placeholder="1 – 20" disabled>
</div>
</div>
</div>
</div>
<div class="row break-on-mobile collapse">
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_lights" id="parts-cb3" value="1">
<label for="parts-lights">Light Bulbs<b>:</b>
</label>
</div>
<div class="col-1-3">
<input name="parts_lights_n" id="parts-in3" type="number" min="1" max="20" placeholder="1 – 20" disabled>
</div>
</div>
</div>
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_trans" id="parts-cb4" value="1">
<label for="parts-trans">Transformers<b>:</b>
</label>
</div>
<div class="col-1-3">
<input name="parts_trans_n" id="parts-in4" type="number" min="1" max="20" placeholder="1 – 20" disabled>
</div>
</div>
</div>
</div>
<div class="row break-on-mobile collapse">
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_river" id="parts-cb5" value="1">
<label for="parts-river">River Rocks<b>:</b>
</label>
</div>
<div class="col-1-3">
<input name="parts_river_n" id="parts-in5" type="number" min="1" max="20" placeholder="1 – 20" disabled>
</div>
</div>
</div>
<div class="col-1-2">
<div class="row collapse">
<div class="col-2-3">
<input type="checkbox" name="parts_screen" id="parts-cb6" value="1">
<label for="parts-screen">Mesh Divider<b>:</b>
</label>
</div>
<div class="col-1-3">
<input name="parts_screen_n" id="parts-in6" type="number" min="1" max="20" placeholder="1 – 20" disabled>
</div>
</div>
</div>
</div>
</div>
关于javascript - JS : Use loop to individually disable multiple checkbox's?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36123119/
在检查复选框时我发现有写 CheckBox checkbox = (CheckBox)sender 在 checkBox1_CheckedChanged 事件上。 请解释一下这是什么意思? 最佳答案
我正在使用来自命名空间 System.Windows.Forms 的 ToolTip 类编辑我的 Web 应用程序;我的代码中有几个复选框,因此显示此错误: 'CheckBox' is an ambi
我正在制作 Bootstrap 复选框下拉菜单,选项包含在 中。处理点击的标签,但我也有一个 在 a 标签内。 当用户按下实际复选框而不是仅按下 时,就会出现我的问题。元素。两者都被点击并且发生了
TLDR:使用defaultChecked而不是checked,工作jsbin . 尝试设置一个简单的复选框,在选中时会划掉其标签文本。由于某种原因,当我使用该组件时,handleChange 没有被
我想拥有它,所以如果复选框为 NULL 或 0,则它不像值为 1 时那样喜欢。另外,有没有办法将选中的框限制为 10 个? 当前代码: if(isset($_POST['submit'])){//to
如果我选中一个复选框,下拉列表应该只显示在该复选框旁边,但它会显示在它下面的所有其他复选框中。 这是我在 html 代码中使用的 css .sub-nav { display: none; } inp
我在警报对话框中有一个带有复选框的数据表,当我单击该复选框时,它没有选中(选中=选中)该框。我跟着这个video 这是我的尝试 import 'package:flutter/material.dar
如果单独使用,以下代码效果很好, Angular6.0 不允许 [(ngModel)] 与 FormGroup (Reactive Forms)。 As 在 angular 6.0 中已弃用,并将在
那么我应该使用哪个来选择元素?我仅使用复选框作为示例,这个问题涉及所有表单元素。 实际上,当我们这样做时,哪个更快: li:first 或 li:eq(0) ? 最佳答案 来自the document
问题 : 我有一个列表框,其中列表框是复选框。在第一次单击时,复选框被选中并选中。在第二次单击时,仅设置复选框。可以使用箭头键重新选择不同的复选框。我的目标是,首先选中该复选框,然后再检查(再次单击它
我似乎无法弄清楚如何让复选框和相关文本出现在一行上。文本很短,所以它似乎不是宽度问题。 我尝试在控件上设置 display:inline,但是当它呈现时,在输入和标签周围添加了一个跨度,并且具有 di
创建带有复选框列的 Table 非常容易,例如,使用 SWT.CHECK 标志。但是如何使某些表格行中的复选框不可编辑而其他行中的复选框保持可编辑? 最佳答案 我不知道这样做的简单方法。 但我看到了两
是否可以使用 TogglerBar 而不是 2 个复选框来显示或不显示不同的形状。 TogglerBar 的每个按钮中都写有绿色和红色? Manipulate[ Graphics[{If[thePin
我需要更改 Windows Phone 8 中 LongListMultiSelector 的复选框的颜色,因为我的背景是白色,这可能吗? 谢谢。 最佳答案 为此,您必须首先通过在 visual st
我有一个带有插件 Slick.CheckboxSelectColumn 的网格。 是否可以在没有 Jquery 的情况下隐藏某些行中的复选框?我想可以使用 Formatter。 这是带有 slickg
所以我有这个... 在这里,id 是有道理的值在引号中,因为它是一个字符串标识符。但是type呢?值(value)?不是 checkbox一种类型,例如 String 和 Boolean?为什么我总
问题: 如果用户选中了复选框,我将尝试验证下拉列表,如您在屏幕一中所见。 问题: 那么,如果用户选择了标题中的所有复选框,我该如何验证复选框呢?如您所见,屏幕二。如果我选中所有复选框,那么我希望启动验
我知道它有点重复,我正在尝试以不同的方式做到这一点,从而重新发布这个问题。 我想要实现的是,当有人“取消选中”OSPF 复选框时..被动接口(interface)检查也应该自动“取消选中”。我正在尝试
这是代码(是的,我使用的是基本的 reset.css): .checkbox { border: 1px solid black; width: 10px; height: 10px; }
我正在尝试显示多组带有标题复选框的复选框,如下图所示。 从数据库中我得到这样的数据, CODE SUBCODE DESCR DESCR
我是一名优秀的程序员,十分优秀!