jQueryselect插件dynamic添加选项
我做了一个jQueryselect下拉菜单,如下所示:
$('.blah').chosen();
我找不到如何添加选项,如下所示:
$('.blah').chosen('add', name, value);
首先,您需要将<option>
添加到<select>
绑定的<select>
。 例如:
$('.blah').append('<option value="foo">Bar</option>');
然后,您需要触发chosen:updated
事件:
$('.blah').trigger("chosen:updated");
更多信息可以在这里find(虽然你需要向下滚动到Change / Update Events
)。
2013年8月7日更新
事件名称已更改为chosen:updated
自Tony版本1.0(2013年7月)以来chosen:updated
正如Tony在评论中提到的那样。 更新的文档可以在这里find。
最新select的版本将事件名称更改为“选中:更新”
所以你的代码将是这样的:
$('.blah').append("<option value='"+key+"'>"+value+"</option>"); $('.blah').val(key); // if you want it to be automatically selected $('.blah').trigger("chosen:updated");
在使用Ajax将元素保存到服务器之后,可以调用此函数添加要select的元素:
function appendToChosen(id,value){ $('.blah') .append($('<option></option>') .val(id) .attr('selected', 'selected') .html(value)).trigger('liszt:updated'); }
Ajax调用:
$.ajax({ type: 'POST', url: 'savepage.php', data: $('#modal-form form').serialize(), success: function(data, status) { appendToChosen(data[0],data[1]); }, error: function (response) { alert(response); } }).always(function(data, status) { //hide loading });
尝试这个..
$.ajax({ url: "@Url.Action("Actionname", "Controller")", data: { id: id }, dataType: "json", type: "POST", success: function (data) { $("#id_chzn .chzn-results").children().remove(); var opts = $('#id')[0].options; $.map(data, function (item) { var text = item.text; for (var i = 0; i < opts.length ; i++) { var option = opts[i]; var comparetext = option.innerText; var val = 0; if(text == comparetext) { val = option.index; $('#id_chzn .chzn-results').append("<li id='id_chzn" + val + "' class='active-result' style>" + item.text + "</li>"); } } }); } });