2012-10-30 51 views
0

我在我的標記文本框中使用jquery ui autocomplete,它的工作正常,但問題是它只給出一次建議,例如第一次當我輸入一個字符時它顯示建議我選擇建議的東西,它附加在文本框中用逗號,但是當我再次輸入的字符不會顯示任何jquery UI自動完成只給一次建議

我的代碼是繼

JQUERY

function split(val) { 
     return val.split(/,\s*/); 
    } 
    function extractLast(term) { 
     return split(term).pop(); 
    } 

    $("#tagsss") 
    // don't navigate away from the field on tab when selecting an item 
     .bind("keydown", function (event) { 
      if (event.keyCode === $.ui.keyCode.TAB && 
        $(this).data("autocomplete").menu.active) { 
       event.preventDefault(); 
      } 
     }) 
     .autocomplete({ 
      minLength: 0, 
      source: function (request, response) { 
       $.ajax({ 
        url: "/Home/LookUpTag", 
        dataType: "json", 
        data: "searchterm=" + request.term, 
        success: function (data) { 
         response($.map(data, function (item) { 
          // alert(data.length); 
          return { 
           label: item.Name, 
           value: item.Name, 
           Name: item.Name 
          }; 
         })); 
        } 
       }); 
      }, 
      focus: function() { 
       // prevent value inserted on focus 
       return false; 
      }, 
      select: function (event, ui) { 
       var terms = split(this.value); 
       // remove the current input 
       terms.pop(); 
       // add the selected item 
       terms.push(ui.item.value); 
       // add placeholder to get the comma-and-space at the end 
       terms.push(""); 
       this.value = terms.join(","); 
       return false; 
      } 
     }); 

我在控制器功能

控制器

public JsonResult LookUpTag(string searchterm) 
    { 

     var tags = context.tagService.Query().Where(x => x.name.Contains(searchterm)).Select(x => x.name).ToList(); 
     var list = tags.Select(item => new SearchJsonModel 
     { 
      Name = item, 
      Value = item 
     }).Select(model => (model)).ToList(); 
     return Json(list, JsonRequestBehavior.AllowGet); 
    } 

我的工作就很多,但沒有發現任何錯誤,請告訴我,什麼是錯的這個代碼。在此先感謝

回答

0

不確定,但你有沒有錯過打電話給你的extractLast()檢索輸入的最後一個術語?

源PARAM

source: function (request, response) { 
       $.ajax({ 
        url: "/echo/json/", 
        dataType: "json", 
        data: "searchterm=" + extractLast(request.term), 
        success: function (data) { 
         response($.map(data, function (item) { 
          // alert(data.length); 
          return { 
           label: item.Name, 
           value: item.Name, 
           Name: item.Name 
          }; 
         })); 
        } 
       }); 
      } 
+0

我很震驚地看到,它的工作原理,謝謝你讓我的一天:-) – Smartboy

-1

綁定的keydown,並自動完成..................問題是

.bind("keydown", function (event) { 

$('########').live("keydown.autocomplete", function() { 
$inputbox = $(this); 
$inputbox.autocomplete({ 
source: function(req, add){ 
$.ajax({ 
type: "POST", 
url: #########################, 
dataType: "json", 
data: { place_of_loading_code: $inputbox.val() } 
}).done(function(msg) { 
resultArr = eval(msg); 
add(resultArr); 
}); 
} 
}); 
});