web-dev-qa-db-ja.com

選択イベントでのjqueryオートコンプリート

私はjQueryオートコンプリートとその正常に動作しているを使用していますが、次の条件が発生したときにjQueryからセッションに変数を格納したいと思います。

誰かがWord jQueryを入力すると、候補ドロップダウンからアイテムを選択すると、候補ドロップダウンが表示されます。

上記のポイントをキャプチャし、変数をセッションに格納したい。

Google、StackOverflowを検索しましたが、関連する解決策は見つかりませんでした。オートコンプリートの私のコードは次のとおりです。

  $(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
    minChars: 1,
    width: 402,
    matchContains: "Word",
    autoFill: true
});

これは私がやろうとしたことです:

  $(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
    minChars: 1,
    width: 402,
    matchContains: "Word",
    autoFill: true,
    select: function (a, b) {
        alert("selected");
    }

});

編集:イベントハンドラの選択も機能していません

C#でasp.net MVC3を使用しています。私を助けて、事前に感謝します。

15
smart boy

だから私が正しく理解しているなら、あなたは可変セッションに選択された値を保存したいです

次のコードを使用して、選択したアイテムから値を取得できます。

  $(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
minChars: 1,
width: 402,
matchContains: "Word",
autoFill: true,
select: function (event, ui) {
    var label = ui.item.label;
    var value = ui.item.value;
   //store in session
  document.valueSelectedForAutocomplete = value 
}
});

値とラベルはサーバーから取得されたjsonオブジェクトです

お役に立てれば

21
iBoonZ

まあ、あなたがasp.net mvc3を使用してセッションに保存したい場合は、次のようにします

$(".autosearch-smart").autocomplete('Home/GetCompanyNames', {
    minChars: 1,
    width: 402,
    matchContains: "Word",
    autoFill: true,
    select: function (event, ui) {   //must be cleared with function parameter
        //alert(ui.item.label);  //will show you the selected item

       $.ajax({
          type: 'POST',
          url: '/Controller/Action1',  //whatever any url
          data: {label: ui.item.label},
          success: function(message) { if(message.data == true) ... else ... },
          dataType: 'json'
       });

    }

});

およびコントローラー

[HttpPost]
  public JsonResult Action1( string label ) {

     this.Session["AnyValue"] = label;

     return Json( new {
        data = true
     }, JsonRequestBehavior.AllowGet );
  }
1
Snake Eyes