0

当 textarea 处于活动状态时(意味着用户正在此字段中键入密钥库),如果键入的字符序列与定义的序列(如“aeu”)匹配,那么我想将焦点设置在 textarea 之外并单击按钮

注意:我正在使用 Mousetrap 插件来处理键盘快捷键。 https://github.com/ccampbell/mousetrap/blob/master/mousetrap.min.js

演示:http: //jsfiddle.net/PqXWJ/5/

正如您在演示页面中看到的那样,我已经尝试过blur()trigger('blur')但是我无法将焦点移出 textarea。

4

4 回答 4

3

我不确定您使用的那个库是什么,但我使用一些简单的 jQuery 事件绑定获得了您想要的功能。

$('#text').keyup(function () {
    if ($(this).val() === 'aeu') $(this).blur();
    $('#myBtnId').click();
});

这是jsFiddle中的一个示例。

更新:

这是一个使用文本区域并允许在所需字符串之前输入任意数量的字符的重新设计示例。 例子

更新 2:

添加了您请求的按钮功能。干杯!

jsFiddle

于 2013-06-17T20:22:35.983 回答
1

你可以在没有插件的情况下做到这一点 -

$('textarea').on('keyup', function () {
    if (this.value === 'enter') {
        $(this).blur();
    }
});

演示----> http://jsfiddle.net/PqXWJ/5/

于 2013-06-17T20:22:24.747 回答
0

我认为这就是您可能正在寻找的

<textarea id="upcinput"></textarea>
<p>Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will un <a id="exception-btn">click here</a></p>

$('#upcinput').keyup(function () {
 if ($(this).val() === 'lorem ipsum') { 
    $(this).blur();
    $('#exception-btn').click();
 }
});

http://jsfiddle.net/ZYJxq/4/

于 2013-06-17T20:30:53.663 回答
0

您正在使用的捕鼠器插件似乎有 textareas 的错误,但由于这是一项如此简单的任务,所以我自己推出比修复损坏的插件更快。

http://jsfiddle.net/PqXWJ/18/

var sequence = [], targetsequence = [65,69,85,13];
$(document).on("keyup",function(e) {
    if (e.which == targetsequence[sequence.length]) {
        sequence.push(e.which);
        if (sequence.length == targetsequence.length) {
            alert("Correct Sequence!");
            $("#upcinput").blur();
            sequence = [];
        }
    }
    else {
        sequence = [];
    }
});
于 2013-06-17T20:39:40.737 回答