首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >removeAttr("selected")和.attr('selected','selected')不能正常工作

removeAttr("selected")和.attr('selected','selected')不能正常工作
EN

Stack Overflow用户
提问于 2016-07-08 10:47:48
回答 1查看 6.2K关注 0票数 8

我的表单中有两个选择字段。第一个是单选择,另一个是多选择。现在我要做的是在带有给定数据的多重选择中选择选项,这取决于在单选择中选择的选项。要做到这一点,当单选择更改时,我将触发ajax请求:

代码语言:javascript
复制
$.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:

代码语言:javascript
复制
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说没有选择选项。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-13 07:06:55

只需在所有句子中使用prop()方法,该方法适用于动态属性(如selected)

看到你的小提琴修改没有问题:

https://jsfiddle.net/0aaxk2hz/3/

代码语言:javascript
复制
$(this).prop('selected', true); // add it
$(this).prop('selected', false); // remove it
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38264770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档