我有这样的HTML / jQuery:
<select id="userlist" name="userlist">
<option value=''></option>
<option value="ADJUDICATION">ADJUDICATION</option>
<option value="ADMINISTRATIVE">ADMINISTRATIVE LAW</option> # etc
</select>
$("#userlist").keypress(function(e) {
windows_id += String.fromCharCode(e.which).toUpperCase();
// Only do anything if we have more than 1 initial.
if (windows_id.length > 1) {
// do stuff here
}
});
如您所见,如果用户输入两个以上的字符,我想做一些特别的事情。
我的问题是:在用户输入一个字符后,有什么方法可以防止<select>
列表移动,而是在用户键入两个字符之前保持静止状态?
谢谢!
答案 0 :(得分:2)
这是浏览器行为,无法覆盖或停止。如果您想要这种特定的行为,那么您将需要使用javascript实现类似控件的选择。
答案 1 :(得分:0)
我能够通过从绑定到keydown
事件(不是keypress
)的函数返回false来停止选择更改:
$('#userlist').keydown(function(e) {
// ...stuff...
return false;
});
从事件处理程序调用{{1}}也应该也可以。
这适用于Firefox 3.5.15(在Fedora 12上)。其他浏览器可能会在其他键事件上滚动选择,因此您可能也必须捕获它们(事件处理程序只返回false)。
希望这有帮助!