每按一次TAB键,选择不同的单词

时间:2014-11-26 10:13:22

标签: javascript jquery keyboard-shortcuts

在句子中移动每个单词。

我已经创建了用于输入我的应用程序的快捷键,它将移动并将每个输入控件集中在我的页面中。

我需要为标签设置键盘快捷键,因为它必须选择某些文本框中的每个句子的字符串。例如,txtAddress包含类似“我是新用户”的值,如果我按Tab键它必须选择字符串“hi”然后“i”然后“am”然后“new”然后“user”之后它必须聚焦下一个输入控件。

我尝试使用以下JS来关注下一个输入控件,但不知道如何选择文本框中的每个单词。

$(document).unbind('keydown');
$(document).bind('keydown', 'tab', function assets() {
    try {
        var inputs = $(":input:not(input[type='hidden'])");
        var CurInput = inputs.get(inputs.index(document.activeElement));
        var nextInput = inputs.get(inputs.index(document.activeElement) + 1);
        if (CurInput && nextInput.type == "text" && CurInput.style.display != "none") {
            var strval = CurInput.value;
            if (!strval) {
                if (nextInput && nextInput.type != "hidden" && nextInput.style.display != "none") {
                    nextInput.focus();
                }
            }
        }
        else if (nextInput && nextInput.type != "hidden" && nextInput.style.display != "none") {
            nextInput.focus();
        }
        return false;
    }
    catch (e) {
    }
});

2 个答案:

答案 0 :(得分:2)

http://jsbin.com/cihahigevo/1/edit?html,js,output

var textarea = $('textarea')[0],
    index = 0;

$(document).on('keydown.tab', function(e){
  if( e.keyCode == 9 ){
    textarea.focus();
    textarea.value = textarea.value.trim() + ' ';
    index = textarea.value.indexOf(' ', index) + 1;
    textarea.setSelectionRange(0, index);
  }
  return false;
});

答案 1 :(得分:0)

覆盖用户键盘,尤其是标签按钮,绝不是一个好主意。

标签按钮由(无论出于何种原因)不使用鼠标通过“标签”导航网站的人使用。按钮,表单字段等之间

如果您通过覆盖标签键删除此功能,则会突然使这些用户无法访问您的网站。

您也可能违反国家/地区关于网站可访问性的法律(英国的残疾与歧视法案)。