2013-05-13 47 views
33

私はSelect2を使用しています3.3.2select2 - 入力とドロップダウンの幅を変更する

私は非常に長いオプションを選択しています。 例:

<select id="e1"> 
<option value="AL">Alabama</option> 
<option value="WY">Wyoming</option> 
<option value="WY">very long long long text</option> 
<option value="WY">very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text</option> 
</select> 

目的は、ドロップダウンが開くときのオプションの折り返しを避けるためです。

オープン時にドロップダウンに長い幅を設定したい(たとえば、 - 800px、または自動評価された幅など)。

しかし、ドロップダウンが閉じているときに入力を短く(たとえば300px)維持する。

私はこののselect2の問題に続きました。

しかし、私はそれを動作させることができませんでした。オプションの幅/ドロップダウンは入力の幅と複数の行に囲まれたオプションと同じです。ここで

はjsfiddleでの私の問題のデモです - http://jsfiddle.net/ewwAX/

助けるため、事前にすべてのいただきありがとうございます。

答えて

52

使用したプロパティは、ドロップダウンの幅を制御するためのものではありません。 dropdownCssClassプロパティを使用できます。

Here's a demo in jsFiddle

JavaScriptの

$(document).ready(function() { 
    $("#e1").select2({dropdownCssClass : 'bigdrop'}); 
}); 

CSS

.bigdrop { 
    width: 600px !important; 
} 
+1

こんにちは、あなたがドロップダウンそのそこにあなたのフィドルのように広いなければならないことを私はしたい、あまりにも私を助けるが、一度それがどんなに広い背中は通常の幅に日付あってはならない選択してくださいでき –

+1

@NKです。下記のDave Amphlettの答えをご覧ください。これは私のために働く。 – w00ngy

+0

@NK jssfiddleを変更して(idの代わりに)cssクラスを使用すると、widthプロパティが使用されます(閉じた状態の場合) – roberkules

58

Selectセレクトは、ドロップダウンの内容について十分に広いことを試みるためにJavaScriptを使用して 'dropdownAutoWidth' パラメータを含んでいます。

これは少なくともSelect2で動作します。3.4.3 - どのくらい前に導入されたか分かりません。

+9

バージョン4.0.0-rc.2で動作しません – Cocowalla

+1

これは3.5.4で動作します –

+2

4.0.2で動作します。 – Brett

1

ここではときにのみ、その開放広いSELECT2を作成する方法は次のとおりです。

あなたはそれが、右側に向けて展開するこのCSSを追加したい場合は:あなたはそれが左を展開したい場合は

.select2-container.select2-dropdown-open { 
    width: 170%; 
    } 

を追加この{

.select2-container.select2-dropdown-open { 
    width: 170%; 
    margin-left: -70%; 
    } 
1

は、私はこれを使用し、それが影響するだけという、完璧に働いたすべてのselect2

#select2-drop{ 
    width: 400px !important; 
} 
+0

' ' – kimoduor

+0

重要なこともあります。反応しないかもしれません。 – kimoduor

9

もっと良い解決策。用途:

$('#e1').select2({width: 'resolve'}); 
+0

これは現在の状態です。このオプションは、質問(2013)の瞬間に利用できませんでした – Yeronimo

+0

私は試しましたが、私とはうまく動作していませんか?なぜか教えてくれますか ? – huykon225

+0

ありがとうございます。これは、選択したボックスとオプションの幅の問題を解決します。 – Nirmal

関連する問題