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