динамическое переименование элементов формы с помощью JavaScript - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть таблица внутри формы, которая заполнена различными полями ввода.Я написал различные функции JavaScript, которые позволят пользователю добавлять или удалять строки из таблицы, а также динамически переименовывать имена элементов, которые идут после того, где пользователь ввел строку (если это имеет смысл - надеюсь, мой код объяснитто, что я пытаюсь сделать).

Это работает в IE9, Firefox и Chrome, но не в IE7 (которым в настоящее время пользуются многие люди в моей организации, которые все еще используют XP).1004 * Код не самая элегантная вещь, которую я когда-либо писал, но мне нужно это исправить, прежде чем демонстрировать ее перед людьми завтра!(Так что я готов рассмотреть все, даже если это быстрое и грязное исправление на данный момент!)

Спасибо!

for (var e = 0; e < editForm.elements.length; e++) {
    // Increment 'add row' buttons so that they add underneath the correct row
    if (editForm.elements[e].name.length >= 4) {
        if (editForm.elements[e].name.substr(0, 4) == 'add_') {
            stringPos = editForm.elements[e].name.indexOf('_');
            currentQuestionNumber = editForm.elements[e].name.substr(stringPos + 1);
            if (currentQuestionNumber > pos) {
                editForm.elements[e].name = 'add_' + (parseInt(currentQuestionNumber) + 1);
                editForm.elements[e].id = 'add_' + (parseInt(currentQuestionNumber) + 1);
                editForm.elements[e].setAttribute("onclick", "addRow(" + (parseInt(currentQuestionNumber) + 1) + ");");
            }
        }
    }

Вместо ...

editForm.elements[e].name = 'add_' + (parseInt(currentQuestionNumber) + 1);

... Я также использовал ...

editForm.elements[e].setAttribute("name", "add_" + (parseInt(currentQuestionNumber) + 1));

... но в IE7 это тоже не работает.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 15 сентября 2011

Если элементы, которые вы изменяете, были созданы динамически, вы можете столкнуться с ошибкой IE6 / 7.В блоге Web Bug Track есть указатель на возможное решение проблемы setAttribute ошибка .Вы также можете найти ответы на «Изменение имени атрибута клонированного элемента ввода в jQuery не работает в IE6 / 7» полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...