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