ДОМ: Я не могу получить доступ к динамически создаваемым элементам. В чем дело - PullRequest
2 голосов
/ 12 мая 2010

Я создаю форму с AJAX. Я создал форму, написав элементы html-формы в innerHTML элемента div, куда я помещаю форму

div.innerHTML += '&nbsp;<input type="text" name="day" id="eventDay" size="2" maxlength="2" value="'+response.day+'" />,';
div.innerHTML += '&nbsp;20<input type="text" name="year" id="eventYear" size="2" maxlength="2" value="'+response.year+'" /><br /><br />';

Я также пытался сделать это с помощью document.createElement('input');, но это также доставляет мне проблемы. После создания формы, когда я пытаюсь отправить значения с помощью другой функции AJAX, я не могу получить доступ к значениям в полях ввода, используя, например, document.getElementById('eventDay').value;. Я не хочу отправлять форму, используя HTTP напрямую, но предпочел бы отправить ее с помощью функции AJAX. Я понятия не имею, почему я не могу получить доступ к значениям этих полей ввода из другой функции. Пожалуйста, помогите!

Ответы [ 3 ]

1 голос
/ 12 мая 2010

Возможно, вместо этого попробуйте div.appendChild() и передайте туда необработанный HTML.

Или вы можете создать узел (document.createElement), а затем правильно добавить к нему атрибуты через inputvarname.setAttribute().После этого добавьте этот узел как дочерний элемент в div.

0 голосов
/ 24 сентября 2010

если вы используете jQuery, вы получаете созданные элементы, используя live function

0 голосов
/ 13 мая 2010

Я смущенно должен признать, что у меня были другие элементы на странице с теми же идентификаторами, что и поля ввода, которые я использовал. Таким образом, ответ на этот вопрос заключается в том, что я недостаточно хорошо проверил свой HTML и предположил, что проблема была с JavaScript. Спасибо за помощь.

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