如何在textarea处于活动状态时从焦点中删除焦点

时间:2013-06-17 20:14:32

标签: javascript jquery html

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

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

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

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

4 个答案:

答案 0 :(得分:3)

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

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

以下是jsFiddle中的示例。

更新:

这是一个使用文本区域并允许在所需字符串之前输入任意数量字符的返工示例。 Example

更新2:

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

jsFiddle

答案 1 :(得分:1)

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

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

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

答案 2 :(得分: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/

答案 3 :(得分: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 = [];
    }
});