jQuery自动完成会多次触发

时间:2010-07-18 07:18:45

标签: jquery asp.net-mvc-2 autocomplete

因此,我在测试框上有一个jquery自动完成功能,可以在数据库中搜索用户,并将ID放在隐藏的输入字段中。出于某种原因,自动完成功能会在键入内容时触发,然后在选择项目时再次触发,从而更改文本。因为我正在搜索姓名,所以第二次找不到任何匹配并清除我的字段。

我让它在一个单独的页面上工作,但只搜索一个字段,所以当它返回一个值时它会保留。然而,这会搜索两个字段,因此当它再次搜索时它不返回任何内容。我相信问题就在那里,但我不知道如何解决它。

    $("#FormSubscriberName").autocomplete('/subscriber/search', {
    autoFill: false,
    mustMatch: true,
    matchContains: true,
    cacheLength: 12,
    formatItem: function (data, index, max) {
        return data[1];
    },
    formatMatch: function (data, index, max) {
        return data[1];
    },
    formatResult: function (data, index, max) {
        return data[1];
    }
}).result(function (event, data, formatted) {
    if (data) {
        $("#SubscriberID").val(data[0]);
        $("#FormSubscriberName").val(data[1]);
    }
    else {
        $("#SubscriberID").val('<%= Guid.Empty %>');
    }
});


<input id="FormSubscriberName" name="FormSubscriberName" style="width:250px;" type="text" value="" /> 
<input id="SubscriberID" name="SubscriberID" type="hidden" value="" />

1 个答案:

答案 0 :(得分:1)