我需要执行搜索并将其动态保存在输入字段中。我是Ajax的新手。
这就是我所做的。 从数据库进行查询并使用json编码如下
[{"id":"1","name":"Jack"},{"id":"2","name":"Ace"},{"id":"3","name":"Test"}]
现在有一个带有name输入字段的表单(注意:只允许来自数据库的现有名称)。当输入名称时,我需要在Json中执行搜索并获取名称并显示在输入字段下方(谷歌搜索显示相关搜索词的确切方式),点击后该名称应该是可点击的,应该使用该名称填充输入文本。并且还使用相应的id更改隐藏输入字段的值。
<input id="name" type="text" name="name">
<input id="id" type="hidden" name="id">
正如我之前所说,只允许列表中的名称,如果输入的非现有名称隐藏元素不应该有值或0。
我怎样才能完成它?它应该进行优化(快速),因为它必须在大量数据中搜索大约15k-20k的名称。
答案 0 :(得分:2)
检查我为你的要求创建的小提琴,我使用自动完成方法
var src = [{
"label": "Jack",
"value": "1"
}, {
"label": "back",
"value": "2"
}, {
"label": "tera",
"value": "3"
}, {
"label": "judo",
"value": "4"
}];
$('.name').change(function() {
$('.value').val(0);
});
$(".name").autocomplete({
source: src,
select: function (event, ui) {
event.preventDefault();
this.value = ui.item.label;
$('.value').val(ui.item.value);
}
});
// html
<input type="text" class="name" />
<input type="text" class="value" />