Javascript 当选中两个输入各自的行复选框时,如何启用和禁用它们
如何在选中两个输入框的同级复选框时启用它们,并在未选中同级复选框时禁用它们 选中复选框时,更新或修改的行值应存储在这三个变量中Javascript 当选中两个输入各自的行复选框时,如何启用和禁用它们,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,如何在选中两个输入框的同级复选框时启用它们,并在未选中同级复选框时禁用它们 选中复选框时,更新或修改的行值应存储在这三个变量中值[]-db id(不可更改),comp[]-存储组件值,计划[]-存储计划。未选中时,应弹出存储的3个值 <tbody> <tr class="checkRowedit"> <td><label>220</label></td> <td><input name=
值[]
-db id(不可更改),comp[]
-存储组件值,计划[]
-存储计划。未选中时,应弹出存储的3个值
<tbody>
<tr class="checkRowedit">
<td><label>220</label></td>
<td><input name="component" type="text" value="John"></td>
<td><input name="plans" type="text" value="9980"></td>
<td><input type="checkbox" value="220"></td>
</tr>
<tr class="checkRowedit">
<td><label>330</label></td>
<td><input name="component" type="text" value="Shan"></td>
<td><input name="plans" type="text" value="966"></td>
<td>
<input type="checkbox" value="330">
</td>
</tr>
<tr class="checkRowedit">
<td><label>440</label></td>
<td><input name="component" type="text" value="Irfan"></td>
<td><input name="plans" type="text" value="953"></td>
<td>
<input type="checkbox" value="440">
</td>
</tr>
<tr class="checkRowedit">
<td><label>550</label></td>
<td><input name="component" type="text" value="Khalid"></td>
<td><input name="plans" type="text" value="897"></td>
<td>
<input type="checkbox" value="550">
</td>
</tr>
</tbody>
var values = [];
var comp = [];
var plans = [];
220
330
440
550
var值=[];
var comp=[];
var计划=[];
这是两个问题中的更多问题,但您需要使用,并在选中复选框后构建阵列
要启用/禁用复选框,您将使用查找复选框
向其添加事件。选中后,您将禁用该字段并构建阵列
var值=[];
var comp=[];
var计划=[];
Array.from(document.querySelectorAll('[type=checkbox]')).forEach(checkbox=>{
checkbox.addEventListener('change',e=>{
Array.from(checkbox.closest('tr').queryselectoral('[type=text]'))
.forEach(i=>i.disabled=!checkbox.checked)
//构建阵列
comp=getComponents()
计划=获取计划()
values=getValues()//需要设置前两个
//检验我们的逻辑
console.log('Values:'+Values.toString())
console.log('Comps:'+comp.toString())
console.log('Plans:'+Plans.toString())
})
})
函数getComponents(){
返回Array.from(document.querySelectorAll('[name=component]'))
.filter(item=>!item.closest('tr')。querySelector('[type=checkbox]')。选中)
.map(item=>item.value)
}
函数getPlans(){
返回数组.from(document.querySelectorAll('[name=plans]'))
.filter(item=>!item.closest('tr')。querySelector('[type=checkbox]')。选中)
.map(item=>item.value)
}
函数getValues(){
返回comp.reduce((arr,item,idx)=>arr.concat([item,plan[idx]]),[]))
}
220
330
440
550
是的,这很有效。在这种情况下,当用户选中复选框时,输入应该是可编辑的,编辑将存储在这3个数组中。当用户取消选中时,数组中的值应该是vomited。我不确定vomited是什么意思,但我已经更新了代码,这是您现在正在寻找的吗?