2012-11-22 4 views
1

knockoutjs로 jquery 자동 완성을 사용하고 있습니다. 키보드와 마우스 스틱 이벤트로 잘 작동합니다. 하지만 내 문제는, 내가 어떤 이름을 입력하지 않을 때, 내 페이지 (abservable 변수에 저장)에 그 이름을 보여주는 것입니다.knockoutjs로 Jquery 자동 완성

//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()); 
      } 
     },