jquery Select2 Ajax - 如何设置值(initSelection)

时间:2013-05-30 15:43:04

标签: jquery-select2

如何在用户选择的下拉列表项中设置?

方案:
1.用户不要在表格中输入所有要求的值 2.单击已发送。
3.页面刷新,未选中下拉列表中的值。 如何选择值?

我有工作脚本,可以检索列表的数据。

$('#userid').select2({
placeholder : " --- select ---",
minimumInputLength: 2,
ajax: {
    url: "index.php?modul=getusers",
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    data: function (term, page) {
        return {
            q: term,
            page_limit: 10
        };
    },
    results: function (data, page) {
        return { results: data };
    }
},
allowClear: true,
formatSelection: function(data) { 
   return data.text; 
}   
});

ajax调用中的标准数据: {“text”:“示例文字”,“id”:“1”}

输入:     

  <input type="text" value="<? echo $_POST['userid']; ?>" class="input" id="userid" name="userid"> 

我尝试添加以下代码,但它不起作用

initSelection: function(element, callback) {
    var id=$(element).val();
    if (id!=="") {
       $.ajax("index.php?modul=getusersfriend&q="+id, {
       dataType: "json"
       }).done(function(data) { callback(data); });
    }
},

1 个答案:

答案 0 :(得分:0)

确保在initSelection的回调中返回了格式正确的JSON对象。已经针对here进行了讨论。

但到目前为止看起来还不错。您可能希望bind the change表单的select或submit事件的事件在提交表单之前序列化其值。

您可以将其值存储在服务器上(令人讨厌),或者只是序列化表单对象,并在加载select2时获取值以传递给initSelection。

这会发生什么:

 var id=$(element).val();

以下是序列化表单的简单example

PS:不要真正看到bootstrap与任何东西有关。