2016-03-24 19 views
0

ページのテキストボックスにオートコンプリートを設定しようとしていますが、動作させることができません。MVC jQueryオートコンプリートが動作しない

私は私のバンドルが構成されている:コントローラで

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-{version}.js", // version is 2.2.1 
      "~/Scripts/jquery-ui-{version}.js" // version is 1.11.4 
)); 

、ユーザーのリストを返す関数。そう以下、XXXは整数に置き換えられ

public JsonResult GetInternalUsers() { 
    var results = db.Users 
     .Select(x => new { 
      UserId = x.UserId, 
      UserName = x.UserName, 
     } 
    ).ToList(); 

    return Json(results, JsonRequestBehavior.AllowGet); 
} 

エディタボックスが動的に追加され、(すなわち、Attendees0)。

<input id="AttendeesXXX" type="text" name="Attendees[X]" class="form-control col-md-6" /> 

そして最後に、実際のスクリプト:

$('#Attendees' + internalAttendees).autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: '@Url.Action("GetInternalUsers", "Events")', 
      type: 'GET', 
      async: false, 
      success: function (data) { 
       response($.map(data, function (item) { 
        return { label: item.UserName, value: item.UserId } 
       })) 
      } 
     }); 
    }, 
    select: function (event, ui) { 
     $('#Attendees' + internalAttendees).val(ui.item.label); 
     return false; 
    }, 
    minLength: 1 
}); 

はほとんど私を投げ部分は私が$('#Attendees' + internalAttendees)を入力すると、インテリセンスがautocompleteを立ち上げることがないということですので、私はしても知りません私は正しいライブラリを含めています。

私が間違っていることを知っていますか?

+0

こんにちは@ダンシャンパン、developer tools f12をオンにして、[ネットワーク]タブをクリックして、そのページをリロードしてみてください。あなたはjquery UIの前にjQueryのロードを見ていますか? jQueryが最初にロードしていることを確認できれば、コンソールは何を言っているのですか? –

+0

@ mwwallace8はい、uiライブラリの前にjqueryがロードされています。 –

+0

そして、コンソールは何を言っているのですか?私はスクリプトが動作していない/自動補完を認識している場合、ブラウザコンソールに何らかのエラーがあると仮定します。 –

答えて

1

確認する必要があることがいくつかあります。私は

何かが、私はブレークポイントを設定し、それは価値があるかどうかを確認するために$のMYELEMENTを検査できるように可変

var $myElement = $('#myElement'); 

としての私のセレクタを宣言しています。

次に、ブレークポイントを設定して、要素が動的に追加されているため、実際にコードに当たっていることを確認してください。要素が作成される前にドキュメントの準備ができているコードが実行されると、イベントは要素に関連付けられません。要素を追加してから、接続するコードを実行する必要があります。

コントローラにブレークポイントを設定した場合、実際の呼び出しが正しいように見えますが、ヒットしますか?

しかし、私は混乱しています。なぜこれはオートコンプリートですか? ajax呼び出しの "data"パラメータの値を渡したくないのですか?今のところ、あなたはあなたの応答をまったくフィルタリングしていません。

-1
> *** 
    > 
    > > for Mvc Artitecture you must delete already imbended 
    > > @Scripts.Render("~/bundles/Jquery") and 
    > > @Scripts.Render("~/bundles/Jquaryval") on all .cshtml files at the 
    > > end and for also views/Shared/_layout.cshtml at the end and put our 
    > > jaquery suitable files on his suitables .cshtmls files in head...and 
    > > lets enjoy. put on head..these files 
    > > 
    > > <link href="~/Content/jquery-ui-1.10.4.custom.min.css" 
    > > rel="stylesheet" type="text/css" /> <script 
    > > src="~/Scripts/jquery-1.10.2.js" type="text/javascript"></script> 
    > > <script src="~/Scripts/jquery-ui-1.10.4.custom.min.js" 
    > > type="text/javascript"></script> 
    > 
    > *** 


//////////////////////code behind download button////////////////////// 

Response.ContentType = "Application/pdf"; 
      Response.AppendHeader("Content-Disposition", "attachment; filename=help.pdf"); 
      Response.TransmitFile(Server.MapPath("~/doc/help.pdf")); 
      Response.End(); 
関連する問題