2012-02-14 9 views
4
要素に対してjQuery Chosenを使用しています。各要素には同じ値が含まれています。選択した値を配列に格納し、その配列に既に置かれていて選択されていないすべての値を無効にするにはループを使用しています。言い換えれば、私はいつもドップリーハンガーを無効にする。

jQuery Chosen:選択した値の数を制限し、エラーメッセージを表示する方法

データ属性「maxpersons」を使用して、選択した値の数と最後のループで選択した値の数を比較しようとしています。

残念ながらは、オプションがであらかじめ選択されていない場合にのみ有効です。そうであれば、誰かがまだ1つ以上の価値を選択することができます。それは許されるべきではない。また

、私は最大に達したとき<select>要素の隣に<p>タグを入れて、最大に達していないときに、自動的にそれを削除してみたいです。

ご協力いただければ幸いです。これはJSのフィドルです。http://jsfiddle.net/dq97z/28/

答えて

5

change()イベントで使用したのと同じコードをdocument.ready()イベントに入れることができます。このように、

$(document).ready(function(){ 
    var selected = []; 
    var chosen='.chzn-select'; 
    $(chosen).parent().parent().find("option") 
     .each(function() { 
     if (chosen.selected) { 
      selected[chosen.value] = this; 
     } 
     }) 
     .each(function() { 
     this.disabled = selected[this.value] && selected[this.value] !== chosen; 
     }) 
     .each(function() { 
     if ($(this).parent().data('maxpersons') === $(this).parent().find('option:selected').length) { 
      $(this).parent().find('option:not(:selected)').prop('disabled', true); 
     } 
     }); 
    $('.chzn-select').trigger("liszt:updated"); 
})

ありがとうコードスニペット...!

+0

問題ありません!あなたは投票することを歓迎しています。 :p –

+0

投票は1​​5の評判を必要とする、申し訳ありませんが、私は私の評判を得るとき確かにするでしょう:) –

関連する問題