2013-03-11 109 views
0

我有以下代碼將自動完成添加到我的文本框,自動完成顯示和一切正常,但是當用戶選擇一個項目選擇回調不會被調用? 任何解決方案?JQuery - 選擇自動完成功能沒有被調用?

$(function() { 

$("#txtItem").autocomplete({ 
    minLength: 1, 
    source: function (request, response) { 
     $.ajax({ 
      url: "/Correct url here", 
      dataType: "json", 
      data: { 
       term: request.term 
      }, 
      success: function (data) { 
       response($.map(data, function (item) { 
        return { 
         label: item.Name, 
         value: item.Name 
        } 
       })) 
      }, 
      select: function (event, ui) { 
       alert("sdfsdf"); 
       //$("#txtItemId").val(ui.item.value.ItemId); 
      } 
     }) 
    } 
}) 

} 
+1

你的選擇是對的參數你的ajax呼叫,而不是你的自動完成呼叫。 – cjc343 2013-03-11 18:11:44

+0

@ cjc343不能相信我花了2個小時試圖找出答案。謝謝 – aryaxt 2013-03-11 18:16:03

回答

2

重寫代碼是這樣的:

$(function() { 

$("#txtItem").autocomplete({ 
    minLength: 1, 
    source: function (request, response) { 
     $.ajax({ 
      url: "/Correct url here", 
      dataType: "json", 
      data: { 
       term: request.term 
      }, 
      success: function (data) { 
       response($.map(data, function (item) { 
        return { 
         label: item.Name, 
         value: item.Name 
        } 
       })) 
      }    
     }) 
    }, 
    select: function (event, ui) { 
     alert("sdfsdf"); 
     //$("#txtItemId").val(ui.item.value.ItemId); 
    } 
}) 

} 

讓我知道,如果它的工作

+0

仍然缺少一堆分號。 – cjc343 2013-03-11 18:14:20

+2

@ cjc343但它仍然有效的Javascript – 2013-06-26 19:34:53

2
$(function() { 

$("#txtItem").autocomplete({ 
minLength: 1, 
source: function (request, response) { 
    $.ajax({ 
     url: "/Correct url here", 
     dataType: "json", 
     data: { 
      term: request.term 
     }, 
     success: function (data) { 
      response($.map(data, function (item) { 
       return { 
        label: item.Name, 
        ItemId: item.ItemId//this is will put item id in memory 
       } 
      })) 
     }    
    }) 
},//this is after the source property select is an auto complete property many examples screw this up and it is in side the ajax block of code 
select: function (event, ui) { 
    alert("sdfsdf"); 
    //$("#txtItemId").val(ui.item.value.ItemId); 
    } 
    })} 

這裏是一個工作示例http://plnkr.co/edit/RbuRDh1xRIwyO1QamvCe?p=preview