【发布时间】:2014-01-29 07:49:03
【问题描述】:
我正在尝试创建一个自动完成文本框。
这就是我的看法
@模型.....
@{
ViewBag.Title = "创建";
布局 = "~/Views/Shared/_Layout.cshtml";
}
@using(Html.BeginForm("Action","Controller"))
{
@Html.TextBoxFor(m=>m.myEmail)
}
@section Scripts{
@Scripts.Render("~/Scripts/jquery-ui-1.10.4.min.js")
<script type="text/javascript">
$(function() {
$("#myEmail").
autocomplete({
source: '/App/Per',
minLength: 1,
}
);
});
</script>
}
当我在文本框中输入 s 时,会向控制器中的此方法发送请求
public JsonResult Person(string term)
{
var persons = FindPersons(term,"bk@hello.com","bk").ToArray();
var fullnameList = persons.Select(person => person.FirstName + " " + person.LastName).ToList();
return Json(fullnameList, JsonRequestBehavior.AllowGet);
}
在浏览器中,当我检查 chrome 中的元素并检查 response 时,我得到了值,例如
0: "Person1"
1: "Person2"
2: "Person3"
3: "Person4"
问题
我的自动完成框没有填满这些数据。我不应该在文本框的底部得到一个带有上述名称的列表框吗?
编辑 2: 生成的 HTML
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Create - My ASP.NET Application</title>
<link href="/Content/bootstrap.css" rel="stylesheet"/>
<link href="/Content/site.css" rel="stylesheet"/>
<script src="/Scripts/modernizr-2.7.1.js"></script>
</head>
<body>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Date Picker</a>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About</a></li>
<li><a href="/Home/Contact">Contact</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="/Account/Register" id="registerLink">Register</a></li>
<li><a href="/Account/Login" id="loginLink">Log in</a></li>
</ul>
<div class="container body-content">
<link href="/Content/themes/base/minified/jquery-ui.min.css" rel="stylesheet"/>
<h2>Create</h2>
<form action="/App/Cr" method="post"><input id="myEmail" name="myEmail" type="text" value="" /></form>
</div>
<script src="/Scripts/jquery-2.0.3.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/respond.js"></script>
<script src="/Scripts/jquery-ui-1.10.4.min.js"></script>
<script type="text/javascript">
$(function() {
$("#myEmail").
autocomplete({
source: '/App/Per',
minLength: 1,
}
);
});
</script>
【问题讨论】:
-
Javascript 控制台有错误可以分享吗?
-
你对js的引用是否正确添加?
-
没有 javascript 错误,我将截取浏览器中正在加载的文件的屏幕截图。只需一分钟
-
您是否还引用了 jQuery UI 的 CSS 主题文件?
-
@TiesonT。不,我没有,可能这就是问题所在。我应该在哪里引用它?在我的 jquery-ui.js 部分的最后还是之后?
标签: c# jquery asp.net-mvc autocomplete