Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Изменить name в IE8 (https://javascript.ru/forum/css-html-internet-explorer/9195-izmenit-name-v-ie8.html)

alvahtin 04.05.2010 14:12

Изменить name в IE8
 
Необходимо сделать динамическое добавление и удаление элементов формы и чтобы их порядок следования строго соответствовал. Сделал. В Mozilla Firefox все работает, а в IE8 - нет. Начал разбираться, выяснилось, что изменить значение name у объектов не получается :-E . Например, код

Edit = document.all('AEdit'+(I-1));
Edit.name = 'AEdit'+I;
Edit.value = 1;

срабатывает без ошибок, значение value меняется, name, если после второй строки вставить alert(Edit.name) вроде как изменилось, но на самом деле - нет. Есть ли другой способ обойти это, кроме innerHTML?

Skipp 04.05.2010 16:10

Edit = document.all('AEdit'+(I-1)); не правильная конструкция! Используй document.getElementsByName.

Edit.name это свойство, а тебе нужен атрибут

alvahtin 04.05.2010 17:33

Skipp, не помогает. Вот пример:

<script language="javascript">
function Run()
{
Edit = document.getElementsByName('AEdit1')[0];
Edit.setAttribute('name', 'AEdit2');
Edit.setAttribute('value', 2);
alert(document.getElementById('test').innerHTML);
}
</script>
<table id="test">
<tr>
<td>
<input type="text" name="AEdit1" value="1" />
</td>
</tr>
</table>
<input type="button" onclick="Run()" value="Жми!" />

В сообщении alert можно увидеть, что значение value - меняется, а name - остается прежним.

Skipp 04.05.2010 17:55

правда?

<script language="javascript">
function Run()
{
Edit = document.getElementsByName('AEdit1')[0];
Edit.setAttribute('name', 'AEdit2');
Edit.setAttribute('value', 2);
alert(document.getElementById('test').innerHTML);
alert(Edit.getAttribute('name'));
}
</script>
<table id="test">
<tr>
<td>
<input type="text" name="AEdit1" value="1" />
</td>
</tr>
</table>
<input type="button" onclick="Run()" value="Жми!" />

Вот правда поиск по нему не осуществишь.

А зачем тебе вообще такая конструкция?

alvahtin 04.05.2010 20:15

Цитата:

Сообщение от Skipp (Сообщение 54124)
А зачем тебе вообще такая конструкция?

В таблице имеется список строк ввода. При этом нужно соблюсти их названия так, чтобы при отправке можно было считать с помощью соответствующих переменных в том порядке, в каком они были. Когда добавляется строка в конец таблицы - без проблем, а когда строку необходимо вставить между строк - нужно переименовать соответствующие строки ввода в порядке их следования.


Часовой пояс GMT +3, время: 12:58.