2012-03-16 15 views
0

私はまだjQueryに慣れていないので、正しい構文を得ることは困難でした。 私は、チェックボックスがチェックされているかどうかに基づいて、selectlist要素のすべての要素を一度にすべて選択または選択解除しようとしています。jQueryを使用して選択リストのすべてのオプションを選択/選択解除するにはどうすればよいですか?

私は、以下の場合/他の支店では、ここでSOでのいくつかの助けを見つけましたが、見ていると、多くのテストの後、コミュニティに依頼する必要があります...

、他の分岐は正しく動作:

if ($('input[name="select_markers"]:checked').length > 0) { 
     $("#markerlist").prop('selected',true); 
    } else { 
     $('form select option').prop('selected',false); 
    } 

しかし、これはフォームのすべての選択要素に影響しますが、これは嫌いです。私はifブランチでやってみようとしている要素#markerlistに影響を与えたいだけですが、この部分を動作させることはできません。

私はselect要素を反復処理する他の多くの例を見てきましたが、私ができるなら、このクリーンな構文を働かせたいと思います。

TIA、私がお勧めしたい rixter

+1

をお試しください $( 'form select option')=> $( '#marketlist option')私は問題を理解していません。 – InfinitiesLoop

+0

可能であれば、フィドルを作ってください。私はこのためのHTMLを見たいと思います。 – Sethen

答えて

1

$('input[name="select_markers"]').change(
    function(){ 
     if ($(this).is(':checked')){ 
      $('#markerlist').find('option').prop('selected','selected') 
     } 
     else { 
      $('#markerlist').find('option').prop('selected',false) 
     } 
    }); 

JS Fiddle demo

+0

ありがとう!それは素晴らしい仕事でした! – rixter

+0

あなたは大歓迎です。私は助けになってうれしいです=) –

0

あなたはこれを試していましたか?この1

$(".someClass option").attr("selected", "selected"); 
関連する問題