2016-01-20 40 views
-2

喜一切,感谢您的帮助,自动完成文本框在C#和MVC

我需要自动完成与C#和MVC建议文本框。

视图中的文本框为:

<div class="col-lg-3 col-md-3 hidden-sm hidden-xs" style="margin-top:2%;"> 
    <input type="text" class="formLocator" value="Milano" data-date-end-date="0d" id="textLocator" name="searchstring"> 
    <h4 class="FormTextLocator">Where</h4> 
</div> 
<div class="hidden-lg hidden-md col-sm-3 col-xs-12" style="margin-top:2%;"> 
    <input type="text" class="formLocator" value="Milano" data-date-end-date="0d" id="textLocator" name="searchstring"> 
    <h4 class="FormTextLocator">Where</h4> 
</div> 

我创建了一个JavaScript代码为这个文本框:

$(function() 
{ 
    $("#textLocator").autocomplete(
    { 
     source: "/Home/AutocompleteSuggestions", 
     minLength: 1, 
     select: function (event, ui) 
     { 
      if (ui.item) 
      { 
       $("#textLocator").val(ui.item.value); 
       $("form").submit(); 
      } 
     } 
    }); 
}); 

和相关的控制器是:

public JsonResult AutocompleteSuggestions(string searchstring) 
{ 
    var db = new TocFruit(); 
    var suggestions = from s in db.city select s.name; 
    var namelist = suggestions.Where(n => n.ToString().StartsWith(searchstring.ToLower())); 
    return Json(namelist, JsonRequestBehavior.AllowGet); 
} 

但所有这不起作用,但我不明白我做错了什么。

感谢所有,

罗伯托

+0

你得到了什么问题/错误? –

+1

你有两个相同的ID文本框? –

+0

我已解决双重身份证。问题是我不显示文本框下的结果建议。我已经添加了新的代码。谢谢 – user5297740

回答

0

OK 。现在有了你的帮助,控制器返回正确的值列表,但是文本框不显示值。新的代码是这么写的:

现在的代码是这么写的:

的Javascript

$(document).ready(function() { 
    $("#textLocator").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "/Home/AutocompleteSuggestions", 
       type: "POST", 
       dataType: "json", 
       data: { term: request.term }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { label: item.name, value: item.name }; 
        })) 
       } 
      }) 
     }, 
     messages: { 
      noResults: "", results: "" 
     } 
    }); 
}); 

HTML

<div class="col-lg-3 col-md-3 hidden-sm hidden-xs" style="margin-top:2%;"> 
    <input type="text" class="formLocator" value="Milano" data-date-end-date="0d" id="textLocator" name="searchstring"> 
    <h4 class="FormTextLocator">dove</h4> 
</div> 

控制器

public JsonResult AutocompleteSuggestions(string term) 
{ 
    var db = new TocFruit(); 
    var suggestions = from s in db.city select s.name; 
    var namelist = suggestions.Where(n => n.ToString().ToLower().StartsWith(term.ToLower())); 
    return Json(namelist, JsonRequestBehavior.AllowGet); 
} 

非常感谢你

+0

你检查了链接吗? –