【发布时间】:2010-07-01 04:01:28
【问题描述】:
使用此代码:
function setupRow(event, ui) {
var textbox, // how do i get to the textbox that triggered this? from there
// on i can find these neighbours:
hiddenField = textbox.next(),
select = textbox.parents('tr').find('select');
textbox.val(ui.item.Name);
hiddenField.val(ui.item.Id);
$.each(ui.item.Uoms, function(i, item){
select.append($('<option>' + item + '</option>'));
});
return false;
}
function setupAutoComplete(){
var serviceUrl = "/inventory/items/suggest";
$("input.inputInvItemName").autocomplete({
source: function(request, response) {
$.ajax({
url: serviceUrl,
data: request,
dataType: "json",
success: function(data) {
response($.map(data.InventoryItems, function(item) {
return {
value: item.Name
};
}));
},
select: function(event, ui) {
setupRow(event, ui);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
},
minLength: 3,
delay: 500
});
}
一切似乎都很好。问题是选择处理程序永远不会触发,甚至包装我的原始委托 setupRow 以进行调试的匿名函数也不会被调用。
任何人都可以看到我的错误?
我还在评论中留下了一个问题:如何进入有自动建议的文本框。不能在此处使用 id,因为这些文本框是多个文本框,并且会以交互方式动态生成。还是有其他方法可以做同样的事情?
感谢您的帮助!
【问题讨论】:
-
你忘了放;在 ajax 语句的末尾。
-
我不这么认为...您需要向下滚动一下。
-
sry..我的意思是..在成功处理程序语句的末尾..
-
好的,没错,但遗憾的是没有解决问题。谢谢!
标签: javascript jquery jquery-ui autocomplete