我试图创建一个具有动态值的下拉列表,基本上有5个文本框和页面上的下拉列表,下拉列表从这些文本框中获取值。如果用户输入的某些文本大于下拉列表的宽度,那么它在IE上会出现偏差。 我通过选择:hover {width:auto; position:absolute}来修复它。现在问题是如果用户输入的值都小于它收缩的下拉列表的原始大小,我想要一种方式,使它不收缩并仍然扩展。有什么想法??
我正在使用dojo和javascript,无法使用jquery。
答案 0 :(得分:1)
在JavaScript中找到文本的最大宽度,如果它大于下拉列表的当前宽度,则将宽度更改为文本的最大宽度。
当你再次更改文本时,这会像你想要的那样工作(宽度不收缩),因为JavaScript会发现文本的最大宽度小于dropodown的宽度,所以宽度不会改变。
答案 1 :(得分:1)
简单的修复方法是为您的Dropdownlist选择一个宽度,并将最大和最小长度设置为您的文本框值,以便您可以控制提交的大小。否则我可以输入任何东西。
答案 2 :(得分:1)
我会在你的问题上回到0并提供解决方案。
使用CSS。在选择框上设置宽度,即使其中的内容较小,也不会变小。
<select style="min-width:200px;" id="someUniqueIdentifier">
/* Your dynamicaly generated options*/
</select>
答案 3 :(得分:0)
如果我正确地阅读了这个问题,最简单的解决方案是使用min-width属性(developer.mozilla.org/en-US/docs/CSS/min-width),就像这样 - 选择{min-width :50px;宽度:自动; - 这将允许控件的宽度根据需要扩展,但不能低于您定义的最小宽度。这可以在:hover状态选择器上定义,但在元素本身上也能正常工作(我建议)。 IE8 +支持,无需JavaScript。