有了這個代碼:問題與jQuery ui`s自動完成選擇回調(1.8)
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
});
}
一切似乎確定。問題是select處理程序永遠不會觸發,即使是爲了調試目的而封裝我的原始代理setupRow的匿名函數也不會被調用。
任何人都可以看到我的錯誤?
我也在評論中留下了一個問題:我如何到達有自我暗示的文本框。在這裏不能使用id,因爲這些文本框是多個並且交互地動態生成。還是有另一種方式來做同樣的事情?
感謝您的幫助!
你忘了放;在ajax聲明結束時。 – Kai 2010-07-01 04:15:02
我不這麼認爲...... 你需要向下滾動一下。 – Jan 2010-07-01 04:23:02
sry ..我的意思是..在成功處理程序的聲明結束.. – Kai 2010-07-01 04:28:26