Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当选中两个输入各自的行复选框时,如何启用和禁用它们_Javascript_Jquery_Html_Dom - Fatal编程技术网

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是什么意思,但我已经更新了代码,这是您现在正在寻找的吗?