Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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 jquery以编程方式重新选择multselect不会重新选择_Javascript_Jquery_Html - Fatal编程技术网

Javascript jquery以编程方式重新选择multselect不会重新选择

Javascript jquery以编程方式重新选择multselect不会重新选择,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试使用jquery 2.1.1在带有复选框的multselect中选择所有选项 这在第一个勾选框选择和取消选择时可以正常工作,但是后续的勾选框选择不会突出显示multiselect选项,并且写入控制台的更改事件会显示值为null 下面是一个工作副本,可以剪切粘贴到一个文件来说明这个问题-当然,我已经搜索了stack overflow这个问题,但没有找到它列出 你知道为什么重新选择勾选框会添加'selected=“selected”,但不会突出显示选项并导致控制台中的值为'null'吗 谢

我正在尝试使用jquery 2.1.1在带有复选框的multselect中选择所有选项

这在第一个勾选框选择和取消选择时可以正常工作,但是后续的勾选框选择不会突出显示multiselect选项,并且写入控制台的更改事件会显示值为null

下面是一个工作副本,可以剪切粘贴到一个文件来说明这个问题-当然,我已经搜索了stack overflow这个问题,但没有找到它列出

你知道为什么重新选择勾选框会添加'selected=“selected”,但不会突出显示选项并导致控制台中的值为'null'吗

谢谢你的帮助

jQuery(文档).ready(函数($){
jQuery(函数(){
jQuery('#bundle-option-5').change(function(){
log(jQuery(this.val());
});
});
});
函数updateBundleItems(BundleOptions ID){
if(jQuery('input#bundle _tick"+bundleOptionId).is(':checked')){
//jQuery('.bundle\u item\uu'+bundleOptionId).addAttr(“选定”);
jQuery('.bundle\u item'+bundleOptionId).attr('selected',true);
}否则{
//jQuery('.bundle\u item'+bundleOptionId).removeAttr(“选中”);
jQuery('.bundle\u item'+bundleOptionId).attr('selected',false);
}
jQuery('#bundle option-'+bundleOptionId).trigger('change');
}

没有一个
第一个
第二个
第三个

您应该使用
prop
功能,而不是
attr
功能

以下是代码中的更改:

jQuery(文档).ready(函数($){
jQuery(函数(){
jQuery('#bundle-option-5').change(function(){
log(jQuery(this.val());
});
});
});
函数updateBundleItems(BundleOptions ID){
if(jQuery('input#bundle _tick"+bundleOptionId).is(':checked')){
//jQuery('.bundle\u item\uu'+bundleOptionId).addAttr(“选定”);
jQuery('.bundle\u item'+bundleOptionId).prop('selected',true);
}
否则{
//jQuery('.bundle\u item'+bundleOptionId).removeAttr(“选中”);
jQuery('.bundle\u item'+bundleOptionId).prop('selected',false);
}
jQuery('#bundle option-'+bundleOptionId).trigger('change');
}

没有一个
第一个
第二个
第三个

这很有效,避免了我的头撞到墙上,谢谢。