2012-01-05 12 views
5

は、Michael AufreiterによってJQuery UIウィジェットで選択されたオプション値を取得する方法を検索しながら、私の一日を無駄にしました。彼のデモサイトとgithubへのリンクは次のとおりです。http://quasipartikel.at/multiselect/JQuery UI選択したオプションの値を取得する方法

その結果、PHPスクリプトへのPOST/GET送信なしで、選択したオプションの値フィールドが必要です。 私は多くの方法を試み、結果は無かった。 はあなたの助けやアイデア

が必要です*のでAufreiterのjqueryのUIの複数選択についてものの役に立たない多くのトピックが見つかります。■*

答えて

3

私はあなたが上記の持っているサイトに行って、私の中でこれを実行することができましたクロムコンソール:

$('.ui-multiselect .selected li').each(function(idx,el){ console.log(el.title); }); 

div.selected要素内のリストアイテムのタイトル属性には、必要な値が格納されているようです。

編集:

いやはや!もちろん、あなたは値を求めています。ごめんなさい。完全にそれを逃した。実際の商品はjQuery data()のオブジェクトに保存されています。この場合、必要なキーは「optionLink」です。これは、オプション要素への参照を保持します。 '.selected' divの各リスト項目はjQuery.data()メソッドを使用して基になるオプションを追加しました。

したがって、選択したリスト項目を取得し、反復して、データjQueryデータストアから「optionLink」を取得して値を取得する必要があります。

次のコードは、例のページで動作します:

$('.ui-multiselect .selected li').each(function(idx,el){ 
    console.log(el); 
    var link = $(el).data('optionLink'); 
    // link now points to a jQuery wrapped <option> tag 


    // I do a test on link first. not sure why, but one of them was undefined. 
    // however, I got all four values. So I'm not sure what the first <li> 
    // is. I'm thinking it's the header... 
    if(link){ 

     // here's your value. add it to an array, or whatever you need to do. 
     console.log(link.val()); 
    } 

}); 

これは私が複数選択を見てきた最初のものです。それは滑らかです。しかし、私は何かを得るためにあなたの欲求不満を共感します。 'getSelectedOptions()'メソッドは良いでしょう。

乾杯

+0

を(本当にタイトルであること)http://clip2net.com/s/ 1swzK名前はありますが、値はありません。そして、私はマルチセレクションウィジェットに入れたデータがソーシャルネットワークから抜け出しているので、そのテキストを使ってフィールドの価値を検索することはできません。そして1kの大量消費を節約して投稿し、ユーザーに結果:■あなたの助けマエストロと投稿にはまだ感謝が必要です。 – 966p

+0

大丈夫です。投稿を編集してコードを追加して値を取得しました。がんばろう! –

+0

素晴らしい!私にあなたにキスをさせてください:))非常にありがとう、私の例はhttp://russia-golosuet.ru/otkr/test.phpでavaibleです – 966p

13

これでうまくいくはずです。 Chromeコンソールでテスト済み

$("#countries").val(); 
+1

selectタグにmultiple = "multiple"を追加することを忘れないでください – coderman

1

閉じるイベントで選択した値にアクセスしてみてください。

$("#dropdown").multiselect({ 
    header: false, 
    selectedList : 1, 
    height: "auto", 
}).multiselectfilter().bind("multiselectclose", function(event, ui) { 
    var value = $("#dropdown").val(); 
}); 

希望します。

1

ベストソリューション

$('#select').multiselect({ 
    selectAllValue: 'multiselect-all', 
    enableCaseInsensitiveFiltering: true, 
    enableFiltering: true, 
    height: "auto", 
    close: function() { 
      debugger; 
      var values = new Array(); 
      $(this).multiselect("getChecked").each(function(index, item) { 

       values.push($(item).val()); 
      }); 
      $("input[id*=SelectedValues]").val(values.join(",")); 
    } 
}); 
0

あなたはこの試みることができます:私はフィールドではない、その名前の値が必要

$('#ListBoxId').multiselect({ 
    isOpen: true, 
    keepOpen: true, 
    filter: true 
}); 
関連する問題