22

私はjQueryオートコンプリートを使用しており、正常に動作しています。次の条件が発生したときに、変数をjQueryからセッションに保存したいと考えています。

誰かが任意の単語を入力すると、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 を使用しています。私を助けてください、そして前もって感謝します。

4

2 に答える 2

32

したがって、私が正しく理解していれば、選択した値を変数セッションに保存したいと考えています

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

  $(".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 オブジェクトです

お役に立てれば

于 2012-10-04T08:15:36.233 に答える
3

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 );
  }
于 2012-10-04T08:18:35.727 に答える