предварительное заполнение динамически созданного текстового поля с помощью JavaScript в IE - PullRequest
0 голосов
/ 24 октября 2008

Я пытаюсь динамически добавить некоторые текстовые поля (input type = text) на страницу в javascript и предварительно заполнить их. Текстовые поля появляются, но они появляются пустыми. Как правильно предварительно заполнить текстовое поле. В идеале я бы хотел использовать трюк для создания дочернего элемента div, установки свойства innerhtml, а затем добавить этот элемент div к родительскому основному элементу div, но это не сработало. Тогда я решил использовать dom, но установка textboxname.value до или после вставки не сработает, а выполнение txttextbox.setattribute ('value', 'somevalue') также не будет работать. Прекрасно работает в Firefox. Что дает? Это должно быть возможно? Вот мой код Я знаю, что я использую только строковые литералы, но в конечном итоге они будут заменены результатами вызова веб-службы. Ниже приведен код. О, и как вы форматируете код, чтобы он отображался при его вводе? Я думал, что он говорит отступ в четыре пробела, и я сделал это, но код все еще в одной строке. Извините за это.

var table=document.createElement('table');
var tbody=document.createElement('tbody');
var row=document.createElement('tr');
row.appendChild(document.createElement('td').appendChild(document.createTextNode('E-mail')));
var txtEmail=document.createElement('input');

row.appendChild(document.createElement('td').appendChild(txtEmail));
tbody.appendChild(row);
table.appendChild(tbody);

//document.getElementById('additionalEmails').innerHTML="";
document.getElementById('additionalEmails').appendChild(table);

Ответы [ 4 ]

4 голосов
/ 24 октября 2008
txtEmail.value = 'my text'

не работает?

2 голосов
/ 24 октября 2008

Вы также можете использовать Прототип , чтобы сделать это легко:

document.body.insert(new Element("input", { type: "text", size:20, value:'hello world' }))  
0 голосов
/ 24 октября 2008

Я решил эту проблему, внедрив HTML-код непосредственно в страницу через дочерний элемент div. Это сработало, просто я слепой, и программа, которую я использую для чтения экрана по какой-то глупой причине, не смогла увидеть текст в текстовом поле. Пойди разберись. Спасибо за совет по прототипу, хотя, если я когда-нибудь решу не обманывать и добавлять элементы непосредственно в dom, я сделаю это таким образом.

0 голосов
/ 24 октября 2008

В прошлом я сталкивался с проблемами, похожими на это, и хотя моя память немного неясна, почему именно это происходило, я думаю, что вам может потребоваться убедиться, что элемент действительно добавлен в DOM, прежде чем изменять его значение , например:


var txtEmail=document.createElement('input');

document.getElementById('someElementThatAlreadyExists').appendChild(txtEmail);

txtEmail.value = 'sample text';

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