jQuery select2重新格式化<select>但提交选项ID而不是值</select>

时间:2013-02-12 01:20:09

标签: javascript jquery jquery-select2

我正在使用select2 jquery插件重新格式化我的长选项。一切都按预期工作,除非我提交表单时id值被保存为值,而不是值(在本例中为lang)。我无法弄清楚我做错了什么。

这是脚本的样子:

var langs=[{id:0,lang:'English'},
    {id:1,lang:'Afrikaans'},
    {id:2,lang:'Albanian'},
    {id:3,lang:'Zulu'}];

function format(item) { return item.lang; };

$("#field_4").select2({
                  placeholder: "Select your language",
                  data:{ results: langs, text: 'lang' },
                  formatSelection: format,
                  formatResult: format
                  });

这是标记:

<input id="field_4" name="field_4" type="text" class="regular-text " value="3" />

当我在控制台中记录返回值时,我看到了:

{Object}
    O: Object
        id: "1"
        text: "Afrikaans"

更新 我在这方面取得了一些进展。如果我将以下内容添加到构造函数对象(对于select2),我可以保存正确的值(而不是id)。但是,当我添加到使用AJAX获取选项的<select>时,这不起作用。

id : function(object) {
return object.lang;
}

1 个答案:

答案 0 :(得分:8)

我在开发者的帮助下解决了这个问题:https://github.com/ivaynberg/select2/issues/852#issuecomment-13478644

简而言之,有一个id:回调函数可以处理将返回的ID映射到所需的输入值。