本周末我一直在玩http://textextjs.com/,因为它看起来像一个非常可靠的自动完成插件,具有可能在将来有用的额外功能(如标记)。我尝试在一个当前使用我自己的自动完成功能的位置实现这个,但是对于我来说这个插件有一个关键问题,我还没有找到一个示例/解决方案。
我使用以下数据结构:
[
{
"id": "1",
"title": "Active",
//etc....
},
{
"id": "2",
"title": "Inactive",
//etc....
},
//etc...
]
现在我正在使用ajax / autocomplete插件(尽管我最终需要这个功能用于标签插件)。我有一个自定义ItemManager,允许这些数据这个数据工作得很好,但这是我的问题。我希望能够将用户看到并与之交互的输入设置为object.title但是我希望将随表单提交的隐藏输入设置为object.id。使用autocomplete / tags插件时如何获得此类功能?
我试着看一下onGetDataForm,因为我觉得我需要创建一个实现它的插件(虽然对我而言,为了能够设置隐藏的输入而创建一个插件似乎有些过分与可见的不同)但即使是这种情况,我也看不到如何访问自动完成中所选项目的完整数据对象,以便能够将两个字段设置为不同。对此的任何帮助都会很棒。
答案 0 :(得分:1)
我不认为TextExt.js当前支持这一点,但它应该很容易实现。在我解释之前,请在GitHub中提交一个问题,以便它最终成为(如果你还没有)。
p.onGetFormData = function(e, data, keyCode)
{
var self = this,
val = self.val(),
inputValue = val,
formValue = val
;
data[100] = self.formDataObject(inputValue, formValue);
};
如您所见,它直接从输入框返回值。你可以在这里做的是检查你的数据数组(self._suggestions
),如果到目前为止输入的用户匹配的话。如果是这种情况,您可以使用匹配的项目并返回id
字段。
这会回答你的问题吗?