2013-11-11 3 views
0

Im, используя этот скрипт, я обнаружил, что я добавляю текстовое поле, когда пользователь нажимает на текстовую ссылку. Есть ли способ сделать это, чтобы каждое новое текстовое поле, которое появляется автоматически, имеет курсор внутри текстового поля.Добавить фокус на каждый новый ввод текста, который добавлен

Heres сценарий:

function add(orderType) { 

//Create an input type dynamically. 
var element = document.createElement("input"); 
//Assign different attributes to the element. 
element.setAttribute("type", "text"); 
element.setAttribute("name", orderType + "[]"); 


var foo = document.getElementById(orderType); 

//Append the element in page (in span). 
//Create the option text 
var a = document.createTextNode("Choice: "); 
foo.appendChild(a); 
foo.appendChild(element); 
var br = document.createElement("br"); 
foo.appendChild(br); 
i++;  
} 

Большое спасибо

+1

'element.focus()' в конце после 'foo.appendChild' – megawac

+0

@megawac - Хороший! работал отлично. К сожалению, stackoverflow автоматически добавил jquery, я не был уверен, что 100% это было. – Exoon

ответ

2

вызова element.focus() после добавления его в foo:

function add(orderType) { 
    //Create an input type dynamically. 
    var element = document.createElement("input"); 
    //Assign different attributes to the element. 
    element.setAttribute("type", "text"); 
    element.setAttribute("name", orderType + "[]"); 


    var foo = document.getElementById(orderType); 

    //Append the element in page (in span). 
    //Create the option text 
    var a = document.createTextNode("Choice: "); 
    foo.appendChild(a); 
    foo.appendChild(element); 
    var br = document.createElement("br"); 
    foo.appendChild(br); 

    element.focus();//focus new input 

    i++; 
} 
0

Решение JQuery будет выбрать последний вход и затем фокусировать его , где #ordertype - идентификатор контейнера:

$ ("#" + orderType + "input: last"). Focus();

+0

Не совсем, 'orderType' является идентификатором переменной. Должен быть '$ (" # "+ orderType +" input: last ")' – megawac

+0

Спасибо, я исправлю его, это лучше ваш селектор – Carlos487

0

это было некоторое время, так как я запрограммирован в JavaScript, и повторное обучение сейчас ... я верю .focus является то, что вы хотите.

document.getElementById(orderType).focus 

=====================

.tabindex ((надеюсь, правильно Синтекс)) используется с ключом "на вкладке".

document.getElementById(orderType).tabindex = 0  //first name 
document.getElementById(orderTyppe_2).tabindex = 1 //last name 
document.getElementById(orderTyppe_3.tabindex = 2 //address 
document.getElementById(orderTyppe_3.tabindex = 3 //city 
etc... 

больше используется для регистрации или заполнения страницы адреса доставки. вы просто настраивали tabindex, поэтому, когда вы нажимаете вкладку, вы переходите к следующему самому высокому индексу tabindex в документе. может быть более полезным, когда страницы изменяются с помощью javascript.

==================

в глубине моего сознания, я хочу сказать, что есть еще один

.something 
document.getElementById(orderType).something 
for <input /> or <input></input> or like elements 

, но я не помню это сразу. который имеет дело с «курсором», но это может быть проблема с перекрестным браузером. и реализован только в одном из различных основных браузеров.

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