2013-05-30 211 views
5

如何在用戶選擇的下拉列表項中設置?jQuery Select2 Ajax - 如何設置值(initSelection)

場景:
1.用戶在形式上不會進入所有所需的值
2.點擊發送。
3.頁面刷新並且未選擇下拉列表中的值。 如何選擇值?

我有工作腳本檢索列表的數據。在Ajax調用

$('#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; 
} 
}); 

標準數據: { 「文」: 「示例文本」, 「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); }); 
    } 
}, 

回答

0

確保您已在回電中initSelection返回格式正確的JSON對象。已經對此進行了討論here

但迄今爲止看起來不錯。在提交表單之前,您可能希望bind the change表單的select或submit事件序列化其值。

您可以將其值存儲在您的服務器上(yucky),或者只是序列化表單對象,並在加載select2時將值傳遞給initSelection。

這是什麼會發生在這裏:

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

這裏是你的序列化格式的簡單example。 PS:真的不知道bootstrap與任何東西有什麼關係。