5

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

场景:
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":"sample 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); });
    }
},
4

1 回答 1

0

确保在 initSelection 的回调中返回了格式正确的 JSON 对象。对此的讨论已经在这里讨论过了。

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

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

这就是这里会发生的事情:

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

这是一个序列化表单的简单示例

PS:真的看不出引导程序与任何事情有什么关系。

于 2013-06-25T20:37:06.897 回答