Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按任意键可切换到文本字段?_Javascript_Jquery - Fatal编程技术网

Javascript 按任意键可切换到文本字段?

Javascript 按任意键可切换到文本字段?,javascript,jquery,Javascript,Jquery,我想模仿新Myspace的功能。所发生的事情是,您可以简单地开始键入,UI将更改为“搜索”。输入的字符现在位于一个大文本字段中,自动完成显示结果 如何在页面上的任何位置检测按键,而不是在特定的文本字段中? 然后如何显示文本和/或在输入文本时聚焦文本字段?试试这个 function keydown(){ //key was pressed } document.onkeydown=keydown; 演示:仅第一次起作用。也许这就是你想要的。使用jQuery将更容易、更好。但首先,一个

我想模仿新Myspace的功能。所发生的事情是,您可以简单地开始键入,UI将更改为“搜索”。输入的字符现在位于一个大文本字段中,自动完成显示结果

如何在页面上的任何位置检测按键,而不是在特定的文本字段中? 然后如何显示文本和/或在输入文本时聚焦文本字段?

试试这个

function keydown(){
    //key was pressed
}  
document.onkeydown=keydown;

演示:

仅第一次起作用。也许这就是你想要的。使用jQuery将更容易、更好。但首先,一个纯JavaScript

更新-否。只根据需要发布jQuery,检查fiddle中的JavaScript

var firstTyped = false,
    field = $('#field');

function startTyping(evt) {
    evt = evt || window.event;
    if (firstTyped) {
        $(document).unbind('keypress', startTyping);                      
    }
    firstTyped = true;
    field
        .fadeIn(200)
        .focus()
}
$(document).keypress(startTyping);
就像谷歌搜索一样。也可以先隐藏字段,然后在第一个字符类型上显示

更新

对于您在评论中提到的场景,我认为下面的伪代码可能有用

$(yourform).submit(function() {
    ....
    // Submit Successful
    // Reset the text field and bind the event again:
    field.val('').hide();
    $(document).keypress(startTyping);
});
HTML代码

<input type="text" value="type here"/><br/>
<textarea>type here</textarea><br/>
<input type="text" value="don't type here" class="searchbox"/><br/>

这里有一个问题:

您可以使用jQuery和$(“#text field”).focus()和自动完成。我正在查看keypress,但需要它在整个UI上工作,而不需要用户直接选择文本字段。当我需要按键操作任何按键时,按键似乎会寻找特定的按键。有道理吗?这是我一直在寻找的。然而,我需要它在用户点击提交按钮后工作。然后需要重新设置。您有关于Jquery解决方案的任何信息吗?我正在使用的应用程序会让用户多次输入文本字段。我只是想减少用户必须直接点击文本字段才能输入文本。@Tony,看看解决方案底部的链接,JSFIDLE链接。它同时具有jQuery和JavaScript。在提交按钮部分之后为您更新我的答案这是我到目前为止所做的。选择“提交”后,功能将重置。@Tony,请选中此-。如果有效,请接受我的回答。如果我无法理解您的密码,请提供更多详细信息。这就是我现在要查找的内容。如何设置文本字段的焦点?这正是我要查找的内容@bukfixart你能帮我把它和这个联系起来吗?
$( document ).on( 'keydown', function( ev ) {
    var nodeName = ev.target.nodeName;

    if ( 'INPUT' == nodeName || 'TEXTAREA' == nodeName ) {
        return;
    }
    $( '.searchbox' ).val( '' ).trigger( 'focus' );
} );​