2016-04-18 5 views
0

ユーザーがフォーム上のテキストボックスに何かを入力していて、入力しているものが既にデータベースにある値と一致する場合は、そのテキストボックスにすでにデータベースに入っている値に基づいて、ユーザーが入力したいものの残りの部分を自動入力しますか?私のデータベースに:テキストボックスを自動入力する

は、私は(Personテーブルの名前を):この表を持って考えてみましょう

|ID| |FirstName| |LastName| 
1  John   Smith 
2  Tom   Jones 
3  James   Davis 

と、ユーザは、彼らがにを入力し始める新しいPersonを作成したいフォーム上FirstNameテキストボックス..テキストボックスにhnを自動入力するオプションを与えるにはどうすればいいですか?の綴りに最初の文字を大文字にしますか?

何か助けていただければ幸いです。

UPDATE:

コントローラー:

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public JsonResult Create([Bind(Include = "ID,text,subcategory")] Activity codeAC, string term) 
    { 
     if (ModelState.IsValid) 
     { 
      var result = (from r in db.Activities 
          where r.subcategory.ToUpper().Contains(term.ToUpper()) 
          select new { r.subcategory }).Distinct(); 

      db.Activities.Add(codeAC); 
      db.SaveChanges(); 
      return Json(result, JsonRequestBehavior.AllowGet); 
     } 

     return Json(codeAC); 
    } 

スクリプト:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#Categories').autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "/Activities/Create", 
       type: "POST", 
       dataType: "json", 
       data: { term: request.term }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { label: item.subcategory, value: item.subcategory }; 
        })) 
       } 
      }) 
     }, 
     messages: { 
      noResults: "", results: "" 
     } 
    }); 
}) 

CSHTML:

<div class="form-group"> 
    @Html.LabelFor(model => model.subcategory, htmlAttributes: new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.EditorFor(model => model.subcategory, new { htmlAttributes = new { @id = "Categories", @class = "form-control" } }) 
     @Html.ValidationMessageFor(model => model.subcategory, "", new { @class = "text-danger" }) 
    </div> 
</div> 
+3

の例では、[ここ](http://www.c-sharpcorner.com/UploadFile/0c1bb2/creating-ありますautocomplete-textbox-in-Asp-Net-mvc-5 /) – stuartd

+0

[this](http://www.itorian.com/2013/02/jquery-ui-autocomplete-with-json-in-mvc.html)を参照してください。 ) –

+0

@BKOそう、私は* Create *アクションでこれを使用したいと思っていましたが、 rkと私はあなたの参照をかなり密接に従っていると思う..私はこの仕事のための別のJsonResultメソッドを作成する必要がありますか?何か間違いがあるかどうか確認するために私の更新を見渡すことができますか? –

答えて

0

私はそれを考え出しました。 ActionResultを組み込むことができなかったことを知らなかったので、私は別のJsonResultメソッドを作成しました。

コントローラー:

public JsonResult AutoCompleteCategory(string term) 
{ 
    var result = (from r in db.Activities 
        where r.subcategory.ToUpper().Contains(term.ToUpper()) 
        select new { r.subcategory }).Distinct(); 

    return Json(result, JsonRequestBehavior.AllowGet); 
} 

はSCRIPT:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#Categories').autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: "/Activities/AutoCompleteCategory", 
       type: "POST", 
       dataType: "json", 
       data: { term: request.term }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { label: item.subcategory, value: item.subcategory }; 
        })) 
       } 
      }) 
     }, 
     messages: { 
      noResults: "", results: "" 
     } 
    }); 
}) 
</script> 
関連する問題