因此,我在测试框上有一个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="" />
答案 0 :(得分:1)