2013-05-21 3 views
0

Я знаю, что довольно легко сфокусировать вход с помощью JavaScript/jQuery, но можно ли сфокусировать вход на определенном символе?Ввод фокуса в середине пути через текст

Так возьмите этот вход:

inputExample

было бы возможно, чтобы сфокусировать элемент и есть курсор будет помещен после первого предложения, к примеру?

ответ

1

Sure:

$('#inputID').focus().get(0).setSelectionRange(12, 12); 

работает в большинстве браузеров, но старше IE использует createTextRange и move().

FIDDLE

EDIT:

пять минут плагин:

$.fn.setCaret = function(pos) { 
    return this.each(function() { 
     var elem = this, 
      range; 

     if (elem.createTextRange) { 
      range = elem.createTextRange(); 
      range.move('character', pos); 
     } else { 
      if (elem.selectionStart !== undefined) { 
       elem.setSelectionRange(pos, pos); 
      } 
     } 
    }); 
} 

называться как:

$('#inputID').focus().setCaret(12); 

FIDDLE

+0

Сладкий, спасибо! Не знал об этом setSelectionRange()! Также: возможно, использование Vanilla JS вместо настройки плагина. То, как это работает на моем конце, облегчает работу. Очки за попытку! –

+0

@ Dropped.on.Caprica - просто помните, что 'setSelectionRange' работает только в IE9, более старым версиям будет нужен код' range.move() 'выше, если вы собираетесь поддерживать IE8 и ниже. – adeneo

+0

Право на. Сайт, над которым я работаю, даже не поддерживает техническую поддержку IE, поэтому я не очень беспокоюсь о несовместимых браузерах. Хорошая вещь, чтобы иметь в виду, хотя, спасибо за подсказку. –

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