在jQuery中如何显示下拉选择框?

5

也许是重点,但我怀疑。 - RageZ
请参见以下链接:https://dev59.com/PHE85IYBdhLWcg3wYigB#2800276。 - sje397
谢谢,我确实尝试过搜索,但可能没有使用正确的关键词... 谢谢。 - Hailwood
另一个例子:http://jsfiddle.net/mtLUp/4/ - shasi kanth
3个回答

7

这是不可能的。你只能实现自己的下拉框,但这对可用性来说并不好。

另一种方法是以编程方式更改下拉框的大小属性,但这并不是你真正想要的。

我建议考虑为什么需要这样做,是否有更好的软件模式?


2
现在可以通过触发mousedown事件来打开选择框,解决方法在这里: https://dev59.com/eWkv5IYBdhLWcg3wpCXJ - jave.web
1
只有在Chrome上对我有效。IE8或FF不起作用;因此仍然无法以浏览器友好的方式实现。 - 321X

3
不行,您不能这样做。它与当用户单击按钮时的按下状态粗略相同 - 对于用户设置值的“临时”操作。您可以将焦点focus到它,但仅此而已。
如果您确实想模拟这个功能,可以使用一些CSS进行尝试。例如,您可以创建一个看起来像下拉列表的列表,并根据用户单击的内容设置下拉值 - 类似于自动完成列表的方式。
如果您想向用户显示所有值,您始终可以将其更改为多行列表框。您可以通过将size设置为任何值,然后在隐藏时将其设置回1来实现。它并不完美,但这是另一个选择:
$("#open").click(function(e){
   e.preventDefault();
   $("#myselect").attr("size",5);    
});

$("#myselect").click(function(){
   $(this).attr("size",1); 
});

http://jsfiddle.net/jonathon/cr25U/


2
以下是我的改写:

这是我的改编:

HTML

<button id='btn'>Click Me</button>
<select id='test'>
    <option>Blah 1</option>
    <option>Blah 2</option>
    <option>Blah 3</option>
    <option>Blah 4</option>
</select>

JavaScript

$('#btn').click(function(){
    $('#test').attr('size', 5);
});

$('#test').change(function() {
   $(this).attr('size', 1); 
});

这并不能打开下拉列表,但有点儿用。
示例请看这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接