私は、テキストボックスに生徒の名前を入力するためにオートコンプリートJQuery関数に取り組んでいます。私はオートコンプリート機能を動作させるために、関連するすべてのJQueryライブラリを利用しました。私はF12キーを押すと、常に "オートコンプリートは関数ではありません"というエラーをスローします。以下は私が実行している私のコードです。私はあなたが作成している同様のデモを作成しているJQueryオートコンプリート関数がロードされていません
StudentBatch.cshtml
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<div class="form-group">
<div class="col-md-12">
@Html.EditorFor(model => model.StudentName, new { id = "StudentName" })
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
alert("This is autocomplete function");
});
$(document).ready(function() {
$("#StudentName").autocomplete({
//autocomplete: {
// delay: 0,
// minLength: 1,
source: function (request, response) {
$.ajax({
url: "/Student/Create",
type: "POST",
dataType: "json",
data: { Prefix: request.term },
success: function (data) {
try {
response($.map(data, function (item) {
return { label: item.StudentName, value: item.StudentName };
}))
} catch (err) { }
}
})
},
messages: {
noResults: "jhh", results: "jhjh"
}
});
});
</script>
StudentController.cs
[HttpPost]
public JsonResult Create(string Prefix)
{
CreateUser user = new CreateUser();
string stdid = "fae30ef0-08b2-4490-a389-3c8eb0a7cc53";
var StudentList = user.GetAllUsers().ToList().Where(u => u.FirstName == Prefix && u.usertypeid == stdid).ToString();
return Json(StudentList, JsonRequestBehavior.AllowGet);
}
クエリから 'ToString()'を削除します。あなたの 'EditorFor()'の 'new {id =" StudentName "}'を削除してください。これは 'id'属性を追加しませんし、' id = "StudentName" 'をすでに追加しています) –
そして 'Student'のすべてのプロパティを返すことはありません。' .Select(x => x.StudentName) 'を使い、' return {label:item、value:item}; ' –
ポイントが記載されています。オートコンプリートメソッド上にある実際の問題はまだ発生しています。 – user100020