0

我试图创建一个具有动态值的下拉列表,基本上有 5 个文本框和一个页面上的下拉列表,下拉列表从这些文本框中获取值。如果用户输入的文本大于下拉菜单的宽度,那么它会在 IE 上倾斜。我通过 select:hover{width:auto;position:absolute} 解决了这个问题。现在的问题是,如果用户输入的值都小于它收缩的下拉列表的原始大小,我想要一种方法使其不会收缩并仍然扩展。有什么想法吗??

我正在使用 dojo 和 javascript,不能使用 jquery。

4

4 回答 4

1

在 JavaScript 中找到文本的最大宽度,如果它大于下拉列表的当前宽度,则将宽度更改为文本的最大宽度。

当您再次更改文本时,这将像您希望的那样工作(宽度不收缩),因为 JavaScript 会发现文本的最大宽度小于下拉菜单的宽度,因此宽度不会改变。

于 2013-03-08T20:33:19.927 回答
1

简单的解决方法是为您的下拉列表选择一个宽度,并为您的文本框值设置最大和最小长度,以便您可以控制提交的大小。否则我可以输入任何东西。

于 2013-03-08T20:44:01.077 回答
1

我会让你在你的问题上回到 0 并提供一个解决方案。

使用 CSS。在选择框上设置一个宽度,即使其中的内容更小,它也不会变小。

<select style="min-width:200px;" id="someUniqueIdentifier">
    /* Your dynamicaly generated options*/
</select>
于 2013-03-08T20:58:09.600 回答
0

如果我正确阅读了问题,最简单的解决方案是像这样使用 min-width 属性(developer.mozilla.org/en-US/docs/CSS/min-width) - 选择 { min-width: 50px; 宽度:自动;} - 这将允许控件的宽度根据需要扩展,但不会低于您定义的最小宽度。这可以在 :hover 状态选择器上定义,但在元素本身上也可以正常工作(我建议)。IE8+ 支持,无需 JavaScript。

于 2013-03-17T23:08:55.573 回答