使用jQuery更改Chosen.js选择框的值
我试图更改具有Chosen.js叠加层的选择框的值。这个想法是当用户点击一个按钮时改变选定的值。使用jQuery更改Chosen.js选择框的值
通过定期的选择框,我可以做更改值:
$('#GroupsShowNext').unbind("click").click(function() {
var index = $("#GroupsViewGroups").prop("selectedIndex");
index += 1;
$('#GroupsViewGroups option').eq(index).attr('selected', 'selected');
$('#GroupsViewGroups').change();
});
但随着Chosen.js它不工作anymore..I试过几件事,但没有奏效。任何想法如何得到它的工作?
所以张贴这个问题,我继续尝试着去解决这个问题,碰巧发现了一个办法做到这一点了。
$('#GroupsShowNext').unbind("click").click(function() {
var index = $("#GroupsViewGroups").prop("selectedIndex");
index += 1;
$('#GroupsViewGroups option').eq(index).attr('selected', 'selected');
$('#GroupsViewGroups').chosen().change();
$("#GroupsViewGroups").trigger("liszt:updated");
});
关键是把.chosen()放在.change()之前,然后触发“liszt:updated”。它的工作原理,但我不知道这是否是做到这一点的最好办法..
如果你有更好的方法来做到这一点,请让我知道
你也可以看到@LuizCarlosLucena关于也可以使用“选择:更新”的答案 – 2014-04-16 08:05:05
选择:更新用于最新版本,用于legecy版本使用liszt:更新 – 2015-01-24 08:06:42
我偶然发现了这个试图弄明白我。
我能够不断变化的原始字段选择索引,然后触发该字段的liszt:updated
事件的组合来做到这一点:
$('#GroupsViewGroups')[0].selectedIndex = $('#GroupsViewGroups')[0].selectedIndex + 1;
$('#GroupsViewGroups').trigger('liszt:updated');
使用插件Chosen.js它的工作原理。
var myIndex = 4;
$("select#GroupsViewGroups").prop('selectedIndex', myIndex);
只是一个更新(我发现从谷歌这个页面,也许其他人会发现它也)
我tryed作出评论@ splitz的答案,但我不能,因为我仍不很没有足够的声誉。
做新的方法是:
$('#GroupsShowNext').unbind("click").click(function() {
var index = $("#GroupsViewGroups").prop("selectedIndex");
index += 1;
$('#GroupsViewGroups option').eq(index).attr('selected', 'selected');
$("#GroupsViewGroups").trigger("chosen:updated");
});
现在,问题是 “选择:更新”。
更新答案发现:Changing selection in a select with the Chosen plugin
[在选择改变选择与所选择的插件(可能重复http://stackoverflow.com/questions/8980131/changing-selection-in-a-select-与选择插件) – 2014-04-11 05:03:34