0

我需要执行搜索并将其动态保存在输入字段中。我是阿贾克斯的新手。

这就是我所做的。从数据库进行查询并使用 json 进行编码,如下所示

[{"id":"1","name":"Jack"},{"id":"2","name":"Ace"},{"id":"3","name":"Test"}]

现在有一个带有名称输入字段的表单(注意:只允许来自数据库的现有名称)。输入名称时,我需要在 Json 中执行搜索并获取名称并显示在输入字段下方(谷歌搜索如何显示相关搜索字词),一旦单击该名称应该是可点击的,它应该使用该名称填充输入文本. 并更改具有相应 ID 的隐藏输入字段的值。

<input id="name" type="text" name="name">
<input id="id" type="hidden" name="id">

正如我之前所说,仅允许列表中的名称,如果输入的不存在名称隐藏元素不应该有值或 0。

我怎样才能完成它?并且它应该被优化(快速),因为它必须在一个巨大的数据中搜索大约 15k-20k 个名字。

4

1 回答 1

2

检查我为您的要求创建的这个小提琴,我使用了自动完成方法

http://jsfiddle.net/X85LT/

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" />
于 2013-04-03T07:01:48.553 回答