代表字符长度自动展开<select>标签宽度 - Javascript </select>

时间:2011-07-22 16:31:21

标签: javascript jquery

我想代表<select>代码中的字符长度展开<option>代码宽度。

目前,我正在使用这个示例:http://jsfiddle.net/rathoreahsan/ShgWt/但是根据字符数定义硬编码宽度,它适用于除IE 9以外的所有新浏览器。

但是我想要一个更好的解决方案,使用带有自动宽度的jquery / javascript而不是代表字符数的硬编码宽度。


其实我有动态绘制列表。但我最初在网页上的所有下拉列表都有一个固定的宽度,我希望根据onchange行为上的标记字符长度进行更改

请帮忙。

提前致谢。

2 个答案:

答案 0 :(得分: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;}

答案 1 :(得分:1)

你是不是可以通过不指定<select>中的任何宽度来实现这一目的?如果我是正确的,则自动展开是非指定宽度选择的默认行为。