使用JavaScript在使用JavaScript创建的表单中更新文本字段值

时间:2010-12-07 20:17:48

标签: javascript forms

我已在用户的浏览器中使用JavaScript创建了一个表单。

稍后我想用JavaScript使用字符串填充表单中的字段。

我一直在尝试通常的document.formnamehere.fieldnamehere.value ='Foo Bar';但它不起作用。这仅适用于网页HTML中的表单,而不是使用JavaScript创建的表单吗?

如何填写表单字段?

3 个答案:

答案 0 :(得分:2)

如果您通过JavaScript创建表单,那么您仍然应该引用该表单输入...没有看到代码我想这可能不是这种情况,但以下工作:Example here

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

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

document.body.appendChild( form );

text.value = 'asdf';

<强> [更新]

如果你想通过他们的名字检索它们,你可以这样做:Example here

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 :(得分:1)

/*
    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
);

答案 2 :(得分:0)

<div id='page'/>
<script>
    $('#page').append(
            $("<form/>").attr('name','someForm').append(
                $("<input/>").
                      attr('name','sometext').
                      attr('type','text').
                      val('asdf2')
            )
    );

</script>

:请注意我正在使用jQuery执行此操作,您可以在行动here中对其进行测试。