Я добавляю несколько элементов через document.createElement, и каждый элемент имеет несколько атрибутов. Один атрибут является идентификатором. У меня также есть функция javascipt на той же странице, которая захватывает идентификатор через document.getElementById (ID) и innerHTML. Как мне сослаться или получить правильный элемент на основе идентификатора элемента, который был создан динамически? Я использую IE 8 .. работает в Firefox :)
исал несколько Javascript, позволяющих редактировать список элементов в HTML-форме, включая добавление и удаление элементов. Получил это работает в Firefox. При попытке сделать это в Internet Explorer я обнаружил, что все добавленные элементы не отправляются вместе с формой.
Короче говоря ... много упрощений, отладок, выяснили, какая строка вызывает IE, чтобы игнорировать ввод новой формы. Так что проблема поведения решена.
Но теперь я должен спросить: почему? Это ошибка IE?
Вот упрощенный код:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function add() {
div = document.getElementById("mylist");
// *** Adding text here works perfectly fine. ***
div.innerHTML += " ";
e = document.createElement("input");
e.setAttribute("type", "text");
e.setAttribute("name", "field3");
e.setAttribute("value", "--NEWVALUE--");
div.appendChild(e);
// *** Adding text here works perfectly fine in Firefox, but for
// Internet Explorer it causes field3 to not be submitted. ***
//div.innerHTML += " ";
}
</script>
</head>
<body>
<form action="" method="get">
<div id="mylist">
<input type="text" name="field1" value="value1" />
<input type="text" name="field2" value="value2" />
</div>
<a href="javascript:" onclick="add()" />Add</a>
<input type="submit" value="Submit" />
</form>
</body>
</html>
Чтобы попробовать это, сделайте очевидное: загрузитесь в IE, нажмите Add, нажмите Submit, посмотрите, что находится в адресной строке. Если вы раскомментируете последнюю строку вadd()
, IE вдруг прекратит сообщатьfield3
, В Firefox он работает в любом случае.
Есть идеи? Любопытный ум хочет знать. (И как бы добавить туда текст, если нужно, переносимым способом, чтобы IE был доволен?)