2011-07-22 10 views
0

<select><option>タグでは、タグの幅を文字の長さに拡張します。自動拡張<select>タグの長さに代わって文字の長さ - Javascript

現在、私はこの例を使用しています:http://jsfiddle.net/rathoreahsan/ShgWt/が、文字数のベースにハードコードされた幅を定義し、それが少ないし、IE 9

以外のすべての新しいブラウザで動作します。しかし、私はjqueryのを使用することによって、より良い解決策を望んで/キャラクタ数の代わりにハードコードされた幅の代わりに自動幅を持つjavascript。


実際に私は動的描画リストを持っています。しかし、私は最初にすべてのドロップダウンの固定幅を持っています。文字の長さをベースにして、ウェブページ上で変更したい場合は、onchangeの動作

助けてください。

ありがとうございます。

+0

実際には、私は動的に描かれた '

+0

はい、私は質問を再読し、それを認識し、私のコメントを削除しました。下の私の答えを見てください。 – Dutchie432

答えて

2

ここに行きます。これは、div testが選択ボックスと同じフォントを使用していることを前提としています。基本的に私はdivにテキストをダンプし、divの幅を測定し、divをクリアします。次に、その幅を選択ボックスに割り当てます。

ワーキングフィドル:http://jsfiddle.net/Jaybles/ShgWt/5/

HTML

<!--Add right before </body> tag --> 
<div id='test'></div> 

JS

function countit(what){ 
    var formcontent = what.form.charcount.value; 
    var t = $('#test'); 
    t.html(formcontent); 
    var w = t.width() + 25; 
    t.html(''); 
    $("#selectBox").css ({'width' : w + "px"}); 
} 

CSS

#test{float:right;} 
#selectBox{width:80px;} 
+0

あなたの助けてくれてありがとう..しかし、IE7、IE8でもまだ問題があります –

1

<select>に幅を指定しないでこれを行うことはできませんか?私が正しい場合、自動拡張は、指定されていない幅のデフォルト動作です。

+1

それは私が考えていたものです。 '