【问题标题】:.trigger('chosen:updated') does not work... Chosen v1.6.1.trigger('chosen:updated') 不起作用...选择 v1.6.1
【发布时间】:2016-08-17 01:53:03
【问题描述】:

所以我的cshtml中有这个...

 @Html.ListBoxFor(model => model.RoleHelper.roleIDs, ViewBag.Roles as MultiSelectList, new { @id = "roles", @name="roles", @class = "chosen-select", data_placeholder = "Select Role..." })

我已经通过使用这个来激活选择:

<script>    $(".chosen-select").chosen({ width: "100%", display_selected_options: false });</script>

然后我有一个按钮:

<input type="button" onclick="selAll()" id="select_all" name="select_all" value="Select All">

调用这个函数:

<script>
function selAll()
{
    $('#roles option').prop('selected', true).trigger('chosen:updated');
    alert("test");
}</script>

基本上我想要做的是当单击按钮时,我的角色多选框中的所有角色都被选中。问题是,我选择的启用多选框没有反映这种变化。我可以看到所有选项都已选择,但选择不会更新。 (通过更新我的意思是,未显示选项)

当我尝试动态填充我的一个多选框的选项时,Chosen 也没有更新。这是在我调用 .trigger('chosen:updated') 之后。

谁能告诉我我做错了什么?以及如何解决这个问题...

顺便说一句:警报有效意味着 $('#roles option').prop('selected', true).trigger('chosen:updated');调用成功...

【问题讨论】:

    标签: javascript jquery jquery-chosen


    【解决方案1】:

    我认为问题在于您试图在错误的元素上触发 chosen:updated。选择选项后尝试使用$(".chosen-select").trigger("chosen:updated"),看看是否有效。

    【讨论】:

    • 我这样做了.... $('#roles option').prop('selected', true); $('.chosen-select').trigger("chosen:select");但是还是不行……
    • 你可以尝试添加你渲染的 HTML 或者更好地创建一个 jsfiddle 吗?
    • 哦,还有,使用“chosen:updated”,而不是“chosen:select”
    • 哎呀...抱歉...是的,我使用了选择:更新...仍然不好...我不能包含整个呈现的 html 因为它太长...我只是粘贴这里选择中的一些选项.... select class="chosen-select" data-placeholder="Select Role..." id="roles" multiple="multiple" name="RoleHelper.roleIDs">异常监控 ...。我在这里阅读了很多问题和答案,我所看到的只是触发选择:更新,但我这边什么也没发生....
    猜你喜欢
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多