Обновление значения текстового поля с использованием JavaScript в форме, созданной с использованием JavaScript - PullRequest
0 голосов
/ 07 декабря 2010

Я создал форму в браузере пользователя с помощью JavaScript.

Позже я хочу заполнить поле в форме строкой, используя JavaScript.

Я пробовал обычный документ.formnamehere.fieldnamehere.value = 'Foo Bar';Но это не работает.Будет ли это работать только в форме, которая находится в HTML веб-страницы, а не в форме, созданной с помощью JavaScript?

Как заполнить поле формы?

Ответы [ 3 ]

2 голосов
/ 07 декабря 2010

если вы создали форму с помощью JavaScript, у вас все равно должна быть ссылка на этот ввод формы ... не видно кода Я думаю, это может быть не так, но работает следующее: Пример здесь

var form = document.createElement('form');
var text = document.createElement('input');

form.appendChild( text );
form.action = '#';

document.body.appendChild( form );

text.value = 'asdf';

[обновление]

если вы хотите получить их по их именам, вы можете сделать это: Пример здесь

var form = document.createElement('form');
form.name = 'someForm';
form.action = '#';

var text2 = document.createElement('input');
text2.name = 'someText';

form.appendChild( text2 );

document.body.appendChild( form );

document['someForm']['someText'].value = 'asdf2';

Обновлено для добавления обязательного атрибута action в элемент формы, как указано @ user205376

1 голос
/ 07 декабря 2010
/*
    credits: subhaze
    + element reference by name
    + finally, generated fragment is valid HTML
*/

var text = document.createElement("INPUT");
text.name = "inputname";
text.type = "TEXT"; /* this is default, anyway */

var div = document.createElement("DIV");
div.style.border = "thin dashed gray";
div.appendChild(text);

var form = document.createElement("FORM");
form.name = 'formname';
form.action = ''; /* required */
form.appendChild(div);
form.onsubmit = function() {
    return false
};

document.body.appendChild(form);

text.value = "LION!";

setTimeout(
    function() {
        document.formname.inputname.value = ">:3"
    }, 
    5000
);
0 голосов
/ 07 декабря 2010
<div id='page'/>
<script>
    $('#page').append(
            $("<form/>").attr('name','someForm').append(
                $("<input/>").
                      attr('name','sometext').
                      attr('type','text').
                      val('asdf2')
            )
    );

</script>

: обратите внимание, я использую jQuery , чтобы сделать это, и вы можете проверить это в действии здесь .

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