2012-11-22 97 views
1

我正在使用jquery自動完成與knockoutjs。它的鍵盤和鼠標事件的工作很好。但我的問題是,當我輸入任何不存在的名稱時,它會在我的頁面中顯示該名稱(存儲在可忽略的變量中)。jquery自動完成與knockoutjs

這裏是我的javascript代碼:

//For autocomplete extender generating members 
$(function() { 
    $('.tags').autocomplete({ 

     //make ajax call to get all mentored member of logged member 
     source: function (request, response) { 
      $.ajax({ 
       url: "Members.aspx/GetAllMembers", 
       data: "{ 'prefixText': '" + request.term + "' }", 
       dataType: "json", 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       success: function (data) { 
        response(data.d); 
        self.memberOptions(data.d); 
       }, 
       error: function (XMLHttpRequest, textStatus, errorThrown) { 
        alert('error occured while autocomplete'); 
       } 
      }); 
     }, 
     minlength: 0, 
     select: function (event, ui) { 
      //get selected member name 
      self.selectedMember(ui.item.actualValue ? ui.item.actualValue : ui.item.value ? ui.item.value : ""); 
      self.LoadAddress(self.choosenDateId(), self.selectedMember()); 
     } 
    }); 
}); 

我需要的是,當我鍵入一個無效的名稱,頁面應該顯示loggeduser的地址(存在於會話)。即self.selectedMember(userName)。

回答

1

我在下面塊中追加選擇事件發生後,它的工作原理:

change: function (event, ui) { 
      if (!ui.item) { 
       //if invalid name selected, load goals of logged user 
       self.selectedMember(userName) 
       self.LoadAddress(self.choosenDateId(), self.selectedMember()); 
      } 
     },