2014-11-26 3 views
1

Перемещение по каждому слову в предложениях.Выберите каждое слово при каждом нажатии клавиши TAB.

Я создал ярлык для ввода в мое приложение как, он будет перемещаться в направлении и фокусировать каждое управление вводом на моей странице.

Мне нужно установить сочетания клавиш для вкладки как, он должен выбрать каждую строку предложений, которые находятся в некотором текстовом поле. Например, txtAddress содержит значение типа «Привет, я новый пользователь», если я нажимаю клавишу Tab, он должен выбрать строку «привет», затем «i», затем «am», затем «новый», затем «пользователь», после чего он должен сфокусироваться следующее управление вводом.

Я попытался со следующим 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) { 
    } 
}); 
+0

Я никогда не видел этот синтаксис. ' 'Shift + tab'' ??? что это?? – vsync

ответ

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; 
}); 
+0

Фактически я захватил ключ табуляции. Мне нужно выбрать каждое слово в текстовом поле, нажав клавишу табуляции –

+0

, поэтому используйте 'this.setSelectionRange (0, this.value.length);' где 'this' является элементом текстового поля – vsync

+0

да, но я выбрал каждое слово динамически не целое текстовое поле значение –

0

Не рекомендуется переопределять клавиатуру пользователя, особенно кнопку вкладок.

Кнопка закладки используются людьми, которые (по любой причине) не использовать мышь для навигации сайты, «» между табуляцией кнопками, полей формы и т.д.

Если удалить эту функцию с помощью переопределения ключ вкладки, вы внезапно сделали ваш сайт недоступным для этих пользователей.

Вы также можете использовать законы стран о доступности веб-сайтов (инвалидность & Дискриминационный акт в Великобритании).

+0

Фактически я захватил вкладку ключ. Мне нужно выбрать каждое слово в текстовом поле, нажав клавишу табуляции –

Смежные вопросы