Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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_Onchange - Fatal编程技术网

Javascript 当下拉列表更改为多个复选框/选择组合时,选中复选框

Javascript 当下拉列表更改为多个复选框/选择组合时,选中复选框,javascript,jquery,onchange,Javascript,Jquery,Onchange,我希望能够在下拉列表更改时选中复选框。将有多个复选框/下拉组合,它们是根据其他选择从mySQL动态创建的。我已经想出了如何为一个组合,但不是为多个。我必须为每个组合创建一个函数吗?jQuery中有什么方法吗 这是我的1组合的工作代码。我需要做什么才能拥有多个复选框/下拉组合 前平面 - 标志 名称 数 花押字 函数myCheckbox(val){ var x=document.getElementById(“位置”); 如果(val==“”){ x、 选中=错误; }否则{ x、 选中=正确

我希望能够在下拉列表更改时选中复选框。将有多个复选框/下拉组合,它们是根据其他选择从mySQL动态创建的。我已经想出了如何为一个组合,但不是为多个。我必须为每个组合创建一个函数吗?jQuery中有什么方法吗

这是我的1组合的工作代码。我需要做什么才能拥有多个复选框/下拉组合


前平面
-
标志
名称
数
花押字
函数myCheckbox(val){
var x=document.getElementById(“位置”);
如果(val==“”){
x、 选中=错误;
}否则{
x、 选中=正确;
}
}
您可以使用函数调用

$(document).on('change','。组合选择',函数(){
让parent=$(this).closest('.combo');
parent.find('input[type=checkbox]').prop('checked',!!$(this.val().trim())
})

前平面
-
标志
名称
数
花押字
前平面
-
标志
名称
数
花押字
前平面
-
标志
名称
数
花押字

我认为您的输出结构不正确,您可以更好地返回您的
html
,但我根据您当前的输出给出了我的解决方案:

$('.Selects').change(function() {
  $(this).prev('label').children('input[type="checkbox"]').attr('checked', true)
});
$('.Selects').change(函数(){
$(this).prev('label').children('input[type=“checkbox”]).attr('checked',true)
});

前平面
-
标志
名称
数
花押字
前平面
-
标志
名称
数
花押字
前平面
-
标志
名称
数
花押字

如果您感兴趣,这里有一个普通的JS解决方案

编辑:我注意到,如果单击框的标签,其他解决方案将取消选中该框。因此,我添加了一个
preventDefault()
来阻止这种情况

var drops=document.querySelectorAll(“.dropdown”);
对于(变量i=0;i{
变量框=e.target.previousElementSibling.firstElementChild;
如果(e.target.options[e.target.selectedIndex]。值=“”){
box.checked=false;
}否则{
box.checked=true;
}
});
}
var标签=document.queryselectoral(“标签”);
对于(var i=0;i{
e、 预防默认值();
});
}
前平面
-
标志
名称
数
花押字

底圆 - 标志 名称 数 花押字
这正是我要找的。非常感谢,一个问题。脚本是在头上还是在身上,还是很重要?@DancingBay理想情况下,您应该将脚本放在结束标记之前。这样,应该在脚本执行之前加载DOM。如果出于某种原因需要将其放入
中,则可能需要将其包装在
DOMContentLoaded
事件处理程序中。另外,如果这个解决方案对您有效,请为我打勾来标记它是否正确。