我的表单中有两个选择字段。第一个是单选择,另一个是多选择。现在我要做的是在带有给定数据的多重选择中选择选项,这取决于在单选择中选择的选项。要做到这一点,当单选择更改时,我将触发ajax请求:
$.ajax({
type : 'POST',
url : '/Controller/getMultipleSelectIds',
data : {
singleSelectId: singleSelectId
},
success : function(data) {
var multipleSelectIds= JSON.parse(data);
$("#multipleSelectFieldId option:selected").prop("selected", false);
$("#multipleSelectFieldId option").each(function()
{
if ($(this).val() in multipleSelectIds) {
$(this).attr('selected','selected');
}
});
$("#multipleSelectFieldId").trigger("chosen:updated");
}
});假设我在数据库中有这样的值,用于单个选择Ids:
array(
"ssId1" => array(1,2,4,5),
"ssId2" => array(1,3,5)
)现在我选择了单选择("ssId1")中的第一个条目,一切都很好,这意味着多个select就像它应该填充的一样(用给定值1、2、4和5的选项)。但是,当我再次将单选更改为另一个选项("ssId2")时,所选的select只显示选项3(它是一个不是“ssId1”的值)。这种情况一直持续到我在选择的多个选择中没有更多的选项为止。
我已经检查并正确设置了隐藏多选择字段中的选项。所以现在的问题是:这是所选插件中的一个bug,还是我做错了什么?
编辑试图找出问题,并为此使源选择可见。removeAttr或.prop("selected", false),甚至.attr(“selected”、“selected”)似乎都有问题。当我在单选择的两个选项之间切换时,只有选项3被标记(蓝色背景),但是所有3个选项都在html代码中具有选中的属性。当我尝试通过IE11中的js/jquery选择多个选择(必需)字段中的所有选项并提交表单IE时,我遇到了类似的问题,IE说没有选择选项。我做错了什么?
发布于 2016-07-13 07:06:55
只需在所有句子中使用prop()方法,该方法适用于动态属性(如selected)
看到你的小提琴修改没有问题:
https://jsfiddle.net/0aaxk2hz/3/
$(this).prop('selected', true); // add it
$(this).prop('selected', false); // remove ithttps://stackoverflow.com/questions/38264770
复制相似问题