所以我在我的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>
基本上我想要做的是当点击按钮时,我的角色多选框中的所有角色都被选中。问题是,我选择启用的多选框不会反映此更改。我可以看到所有选项都被选中,但选择不更新。 (通过更新我的意思是,选项没有显示)
当我尝试动态填充其中一个多选框的选项时,也没有更新选择。这是在我打电话给.trigger('selected:updated')之后。
有谁能告诉我我做错了什么?以及如何解决这个问题......
BTW:警报的作用意味着$('#roles option')。prop('selected',true).trigger('selected:updated');被称为成功...
答案 0 :(得分:0)
我认为问题是你试图在错误的元素上触发grammar = CFG.fromstring("""
S -> VP NP
NP -> Det N
VP -> V
Det ->'the '
N -> 'door'
V -> 'Open'
""")
。选择该选项后尝试使用chosen:updated
,看看是否有效。