jquery - removeAttr ("selected") 和 .attr ('selected' ,'selected' ) 无法正常工作

标签 jquery prop

我的表单中有两个选择字段。第一个是单选,另一个是多选。现在我想做的是根据单选中所选的选项,使用给定的数据选择多选中的选项。 为此,我在单选更改时触发 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");
    }
});

假设我在数据库中有这样的单选 Id 值:

array(
  "ssId1" => array(1,2,4,5),
  "ssId2" => array(1,3,5)
)

现在我选择单选中的第一个条目(“ssId1”),一切正常,这意味着多选会像它应该的那样被填充(带有给定值 1,2,4 和 5 的选项) )。 但是,当我再次将单选更改为另一个选项(“ssId2”)时,选择的选择仅显示选项 3(这是一个不是“ssId1”之一的值)。这一直持续到我在所选的多选中没有更多选项为止。

我已经检查过,隐藏的多选字段中的选项设置正确。所以现在的问题是:这是所选插件中的错误还是我做错了什么?

编辑 试图找到问题并为此使源选择可见。似乎 removeAttr.prop("selected", false) 甚至 .attr('selected','selected') 有问题。当我在单选的两个选项之间切换时,仅标记了选项 3(蓝色背景),但所有 3 个选项在 html 代码中都具有 selected 属性。当我尝试通过 IE 11 中的 js/jquery 选择多选(必填)字段中的所有选项并提交表单时,我遇到了类似的问题 IE 表示没有选择任何选项。我做错了什么?

最佳答案

只需在所有句子中使用 prop() 方法,该方法可与 selected 等动态属性一起使用

看到你的 fiddle 修改没有问题:

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

$(this).prop('selected', true); // add it
$(this).prop('selected', false); // remove it

关于jquery - removeAttr ("selected") 和 .attr ('selected' ,'selected' ) 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38264770/

相关文章:

javascript - 获取 td 内的所有复选框

javascript - 为什么 jQuery .prop() 不适用于 'allowfullscreen' ?

javascript - 在滚动条上翻译 div

单击父级时的 jQuery 切换复选框

javascript - 设置动态生成的按钮 "disabled"

react-native - 错误 : Component [ComponentName] declared `PropTypes` instead of `propTypes` . 您是否拼错了属性分配?

javascript - 重复一段时间后,间隔不会立即清除

jquery - 不透明度在 IE8 上不起作用

javascript - 无法在 javascript jQuery 中读取 PHP 结构数组

jquery - 导出到文件时忽略 Jquery 数据表中 header 中的 HTML