按下输入时如何模拟选项卡并输入键,最好是在JavaScript中

时间:2012-04-10 11:38:32

标签: javascript jquery keyboard enter

我找到了很多关于如何用tab键替换enter的解决方案,但我需要在输入时模拟标签并输入,请帮助:

我有一个输入字段,然后是一个链接列表(列表由输入过滤)。当我完成输入并按回车键时,我希望第一个链接被“点击”。我假设我能做到这一点的方法是在输入键之前模拟一个tab键,但我该怎么做?

还有其他选择吗?

这就是我所拥有的:

    <input type="text" id="search_filter" style="COLOR: #999" onFocus="if (this.value == 'sometext') {this.value=''; this.style.color='#000';}" name="filter" value="someothertext" />
        <div id="links">    
            <ul>
                <li><a href="someurl">Link 1</a></li>
                <li><a href="someurl">Link 2</a></li>
                <li><a href="someurl">And so on</a></li>
            </ul>
        </div>

谢谢!

2 个答案:

答案 0 :(得分:0)

<input type="text" id="input1"/>
<a href="someUrl">Link</a>

<script>

   $(function(){
           $("#input1").keypress(function(event){
                var ENTER = 13;
                if ( event.which == ENTER ) {
                     $(this).next("a").click();
                     e.preventDeafult();
                     return false;
                }
           })
   })
</script>

答案 1 :(得分:0)

注意 keypress keydown 之间的区别。 Keypress不会触发某些键。所以这是我使用jQuery和keydown的实现:

editorField.keydown( function(e) {
        switch ( e.keyCode ) {
        //13 for Enter
        case 13:
            saveCell();
            break;

        case 40: //I don't remeber which one of those is 'tab'. 
        case 9: //The other should be right arrow
            cell.parent().next().find('td.value').dblclick();
            return false;
            break;
        default:
            break;
        }
    } );

这是我的内联单元格编辑代码,但希望您能根据自己的需要进行调整。