2013-11-20 5 views
0

Я работаю над формой, я могу сделать дополнительные поля ввода и selectfields благодаря этому сайту! В этих полях получают уникальный идентификатор (3011, 3012, 3013 до максимума 3019) и (rc1, rc2 и т. Д.) с ссылкой на удаление.Как получить значение от нескольких уникальных идентификаторов

var i = 2; 
var limit = 10; 
function createInput() { 
    if (i == limit) { 
      alert("You have reached the limit of adding " + i + " inputs"); 
    } 
    else 

var field_area = document.getElementById('301X') 
var div = document.createElement("div"); 
div.id = 'SA '+i; 
var input = document.createElement("input"); 
div.innerHTML = '301'+i ; 
input.id = '301'+i; 
input.name = '3011'; 
input.type = "text"; //Type of field - can be any valid input type like text,file,checkbox etc. 
input.value = ""; 
input.size = '80'; 
var rcnode = document.getElementById("rc1") // bepaal var van de select menu id relcode 
var rcclone = rcnode.cloneNode(true); // bepaal var van de clone van de select 
rcclone.id = 'rc'+i; // het nummeren van id clone 
div.appendChild(input); 
div.appendChild(rcclone); 
field_area.appendChild(div); 

и он отлично работает (не удивит меня, что это может быть beter) Теперь я хочу поймать ценности. Мне удалось исправить это с одного значения с помощью этого сценария:

var x = 1; 
function catchInput() { 
var said = '301'+x; 
var rcid = 'rc'+x; 
var Valsaid = document.getElementById(said).value; 
var Valrcid = document.getElementById(rcid).value; 
alert (said + ' ' + Valsaid + Valrcid); 
} 

, но я хочу поймать их всех. Я играю с массивами и for-loop, но я не могу понять это. Любая помощь, точка в правильном направлении очень ценится.

Герман

ответ

0

Есть несколько возможностей:

1) префикс для ваших идентификаторов с общей строкой, а затем использовать JQuery (например), чтобы найти все элементы с идентификаторами, начиная с этим префиксом: $('[id^=yourPrefix]')

2) если вы хотите придерживаться POJS, «группируйте» эти динамически сгенерированные элементы, назначая им общий класс. вы можете использовать getElementsByClassName(), который доступен не во всех браузерах (на самом деле это проблема только с IE < = 8)

3) все еще, если вы хотите придерживаться POJS, но вам нужна расширенная поддержка браузера, вы можете прикрепить свои идентификаторы с общей строкой, то цикл ваших элементов (возможно ограничением набора с использованием getElementsByTagName()) и тестом, если строка идентификатора начинается с префиксом, используя indexOf(), например (это, скорее всего, как JQuery реализует эту функцию)

Надеется, что это помогает ...

+0

Я не очень много работаю над этим и полностью забыл об этом, но теперь я вернулся в путь. Да, я должен придерживаться POJS, и я понял, что мне нужно getElementsByClassName() вместо getElementsById(). Поиск продолжается. Thanx Herman – Sturmgas

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