2010-06-18 1 views
2

Я хочу вызвать такой же эффект, чем при нажатии клавиши табуляции на элементе с фокусом. Есть ли способ сделать это? Я пытаюсь переключить фокус на следующий элемент.Элементы HTML: как я могу имитировать нажатие клавиши «tab»

Спасибо!

(JQuery вариант)

+0

Возможный дубликат http://stackoverflow.com/questions/1803338/simulate-the-tab-key-function-in-javascript –

+0

DanC, вы нашли решение для проблемы? У меня та же задача. Stephen P, это не дубликат, бывают ситуации, когда слишком сложно найти следующий активный элемент на странице, которая должна быть сфокусирована. – whitered

+0

Stephen P, нет, я не нашел ответа. Я изменил свой код, чтобы он более или менее выполнял эту работу, но я не смог имитировать эффект нажатия клавиши табуляции. – DanC

ответ

1

Что-то вроде этого (с JQuery):

<!DOCTYPE html> 

    <html lang="en"> 

     <head> 

      <title>LOL Focus!</title> 

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script> 

     </head> 

     <form> 
      <input class="focusable" type="text" value="lol"/> 
      <input class="focusable" type="text" value="lol" /> 
      <input class="focusable" type="text" value="lol" /> 
      <input class="focusable" type="text" value="lol" /> 
      <input class="focusable" type="text" value="lol" /> 
      <input class="focusable" type="text" value="lol" />     
     </form> 

     <input type="button" id="trigger_button" value="lol" /> 

     <script type="text/javascript"> 
     $(function() { 

      var focusable = $('.focusable'), 
       last_element_index = focusable.length - 1, 
       current_index; 

      focusable.each(function(i) { 
      $(this).click(function() { 
       current_index = i; 
      }) 
      }); 

      $('#trigger_button').click(function() { 
      current_index = (should_reset_current_index()) ? 0 : current_index + 1; 
      focusable[current_index].focus(); 
      }); 

      function should_reset_current_index() { 
      return (typeof(current_index) === 'undefined') || (current_index == last_element_index) 
      } 

     }); 
     </script> 

    </html> 
0

, необходимые для эмуляции функциональности вкладок некоторое время назад, и теперь я released it as a library, который использует .

EmulateTab: Плагин jQuery для эмуляции табуляции между элементами на странице.

see how it works in the demo.

if (myTextHasBeenFilledWithText) { 
    // Tab to the next input after #my-text-input 
    $("#my-text-input").emulateTab(); 
}