添加多个输入以在Javascript中提交

时间:2016-11-03 19:03:19

标签: javascript arrays append

我无法添加多个输入。我正在阅读包含项目和值的列表,并希望通过Javascript(POST)提交它们,但我无法弄清楚为什么它不想工作。我尝试了几种方式,最后我提出了这个问题,但它确实想要迭代它并抛出错误:

var form = document.createElement("form");
form.action = "submitform.php";
form.method = "post";
form.target = "_blank";
input = [];

var kvarray = document.getElementsByClassName('ua_mattext');

    for (var i = 0; i < kvarray.length; i++) {

        var fieldname = kvarray[i].id;
        var fieldvalue = kvarray[i].value;

        input[i] = "input_" + i;
        document.createElement(input[i]);
        input[i].type = "hidden";
        input[i].name = fieldname;
        input[i].value = fieldvalue;
        form.appendChild(input[i]);
    }
    document.body.appendChild(form);
    form.submit();

我做错了什么?

2 个答案:

答案 0 :(得分:1)

我自己想通了。首先,我没有正确地声明Ext.application({ name : 'Fiddle', launch : function() { var container = new Ext.draw.Container({ renderTo: Ext.getBody(), width: 400, height: 300 }); var surf = container.getSurface(); var s1 = surf.add({ type: 'rect', x: 50, y: 10, width: 300, height: 80, radius: 50, fillStyle: '#ff0000', strokeStyle: 'black' }); var s2 = surf.add({ type: 'path', path: 'M 50, 110 l 100 80 l 100 -80 l 100 80', fillStyle: '#00ff00', strokeStyle: 'black' }); var s3 = surf.add({ type: 'rect', x: 50, y: 210, width: 300, height: 80, radius: 50, fillStyle: '#0000ff', strokeStyle: 'black' }); container.renderFrame(); // Resize (halve x and y) setTimeout(function() { container.setSize(200, 150); s1.setAttributes({scalingX: 0.5, scalingY: 0.5}); s2.setAttributes({scalingX: 0.5, scalingY: 0.5}); s3.setAttributes({scalingX: 0.5, scalingY: 0.5}); container.renderFrame(); }, 5000); } }); 变量(忘记&#34; var&#34;开头)

其次,我没有将input设置为输入。

第三,我正在命名输入document.createElement()input_1,这是无效的。只有一个,input_2

所以,现在它正在运作。以下是更正后的代码:

input

答案 1 :(得分:0)

当你说

  input[i] = "input_" + i;

这一行没有任何内容实际上创建了一个输入HTML元素。相反,你可以做这样的事情

  input[i] = <input type="hidden" name="${fieldname}" value="${fieldvalue}">

还可以替换该行之后的3行。[/ p>

p.s:您还应该在开头声明输入:

var input = []

p.p.s:您应该检查您对kvarray [i]等于的假设。如果你在后续行中执行kvarray [i] .value,我怀疑kvarray [i]将成为一个字符串,这是你需要它来设置输入的name属性等于它。