Я динамически добавить несколько текстовых полей на мою страницу с этой строкой коды:Динамически созданные поля формы держать имеющие одинаковый идентификатор
var textboxCount = 0;
$('#addFields').on('click', function(){
var TextField = document.createElement("input");
TextField.setAttribute("type", "text");
TextField.setAttribute("value", textboxCount);
TextField.setAttribute("name", "textbox");
TextField.setAttribute("class", "foo");
TextField.setAttribute("id", "textbox" + textboxCount);
TextField.setAttribute('onkeyup','doSomething('+textboxCount+');'); // for FF
TextField.onkeyup = function() {doSomething(textboxCount);}; // for IE
jQuery('#TextfieldList').append(eleText);
textboxCount += 1; //Increment the count
});
Теперь мне нужен уникальный идентификатор поля в этой функции:
function doSomething(id){
alert(id);
}
Но когда я вызываю функцию, я получаю одинаковый идентификатор с каждым добавленным полем. Однако значение в текстовом поле является правильным.
Вам действительно не нужно использовать '.setAttribute()' для всех этих свойств. Вы можете просто ссылаться на свойства непосредственно на элемент (например, 'TextField.name =" textbox ";'). Единственным исключением является свойство «type», которое для старых версий IE (и, возможно, new?) Должно быть установлено при создании элемента: 'document.createElement (" ")' - that будет работать и в других браузерах. – Pointy
@ Первым, какие браузеры будут 'document.createElement (" ")' работать? – Musa
@ Musa Я думал, что это сработает где угодно, но, видимо, нет. Я почти уверен, что мой старый мозг не лгал мне, что это необходимо в IE (по крайней мере, старые). – Pointy