2016-04-01 7 views
0

ASP.NET MVCでSelect2を使用しようとしています。しかし、私は仕事を得ることができません。ASP.NET MVCでjquery Select2を使用

$(document).ready(function() { 
      $(".genreOptions").select2({ 
       tags: true, 
       ajax: { 
        url: 'http://localhost:65148/NewProfile/Genres', 
        dataType: 'json', 
        delay: 250, 
        data: function (params) { 
         return { 
          q: params.term, // search term 
          page: params.page 
         }; 
        }, 
        processResults: function (data, page) { 
         var newData = []; 
         $.each(data, function (index, item) { 
          newData.push({ 
           id: item.Id, //id part present in data 
           text: item.Genre //string to be displayed 
          }); 
         }); 
         return { results: newData }; 
        }, 
        cache: true 
       }, 
       escapeMarkup: function (markup) { return markup; }, // let our custom formatter work 
       minimumInputLength: 1 
      }); 

@Html.DropDownListFor(x => x.BandProfile.Genres, Enumerable.Empty<SelectListItem>(), new { @class="genreOptions", multiple = "multiple", style ="width: 100%;"}) 

タグの検索がうまく機能します。しかし、フォームを投稿すると、入力フィールドの数は0になります。入力フォームからデータを取得するにはどうすればよいですか?

答えて

1

@ブライアン私は、JavaScript配列を構築し、サーバーにajaxで渡します。私の目的のために大丈夫に動作するようです。おそらくあなたはそれを試すことができます。私はをクリックして

$('#submitButton').click(function() { 

     fillHiddenInput(); 

     var dataToSend = $('#hiddenInput').val(); 

     //Submit the form with ajax or however you want to get dataToSend to server 
}); 

FillHiddenInput機能...

var fillHiddenInput = function() { 

     $('#hiddenInput').val(""); 
     var stuff = []; 

     $('.ms-selection .ms-list li ul').children('li').each(function(){ 

      if ($(this).hasClass('ms-selected')) 
      { 
       stuff.push($(this).children('span').text()); 
      } 

     }); 

    $('#hiddenInput').val(stuff); 
} 
+0

で以下置くあなたが必要なものとは異なりますが、ここでは一般的な考え方です...

セレクタは、私はしたくありませんそれをする。私はここでカミソリを使いたい。 – Bryan

関連する問題