选择上的 jQuery 更改事件不会通过其他函数更改所选属性来触发

标签 jquery multi-select

HTML

<select multiple="multiple" id="myID" name="myName">
    <option value="blue">blue</option>
    <option value="red">red</option>
    <option value="green">green</option>                
</select>

jQuery:

$('select')
    .change(function(){
        alert("Change Event Triggered On:" + $(this).attr("value"));
    })

这样就可以了。如果我单击多选中的某个项目,则会触发警报。

但是,当我通过 jQuery 从选择菜单中“选择”一个元素时,如下所示:

$('#myOtherSelector')
    .click(function(){
        var $matchingOption = [goes and selects the specific OPTION to toggle]
        if ($matchingOption.attr("selected")){
            $matchingOption.removeAttr("selected")
        }else{
    $matchingOption.attr("selected","selected");
        }
    })

该脚本的工作原理是更改 SELECTED 属性并以可视方式更新选项列表,但在这种情况下不会触发 onchange 事件。

这是为什么?

最佳答案

使用这样的代码更改元素不会触发事件处理程序。不过你可以自己做:

else {
  $matchingOption.attr('selected', 'selected').trigger('change');
}

关于选择上的 jQuery 更改事件不会通过其他函数更改所选属性来触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2321408/

相关文章:

javascript - 触发父级点击事件而不是子级点击事件 jQuery+salesforce

当 ajax 提交上未选择任何内容时,jquery 多选小部件不会发布空内容

javascript - 在多重选择中,我需要能够获取当前所选选项的值

mysql - SQL从同一个表内的子组中多选一行

jquery - 更新 jquery 后脚本不起作用

javascript - 如何将复选框的值传递给 MVC5 中的 ActionResult?

javascript - 在显示/隐藏 div 图像后,图像出现在原始图像旁边而不是替换它

javascript - jquery检查 anchor 中的图像是否等于特定的url

java - 为 Primefaces 多选数据表实现动态 ContextMenu

javascript - 如何刷新 ko 多选组件中的 'options' 绑定(bind)?