Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何有效地向JavaScript中创建的表单添加多个字段?_Javascript_Html_Forms - Fatal编程技术网

如何有效地向JavaScript中创建的表单添加多个字段?

如何有效地向JavaScript中创建的表单添加多个字段?,javascript,html,forms,Javascript,Html,Forms,我有了一个新的页面和新的表单,我想连接到一些现有的服务器端的东西。现在我有了这个代码,但它有点笨重: // make a form var OrderStatusSearchQueryForm = document.createElement("form"); // make first input var Operation = document.createElement("input"); Operation.name="Operation"; Operation.value="Sea

我有了一个新的页面和新的表单,我想连接到一些现有的服务器端的东西。现在我有了这个代码,但它有点笨重:

// make a form
var OrderStatusSearchQueryForm = document.createElement("form");

// make first input 
var Operation = document.createElement("input");
Operation.name="Operation";
Operation.value="Search";
OrderStatusSearchQueryForm.appendChild(Operation);

// make second input
var SearchFieldValue = document.createElement("input");
SearchFieldValue.name="SearchFieldValue";
SearchFieldValue.value=document.formonpage.searchString.value
OrderStatusSearchQueryForm.appendChild(SearchFieldValue);

// not shown, many more inputs like the above

// set a few important values from the form on the page

OrderStatusSearchQueryForm.submit();
我想知道我是否可以写一个函数,只需要几个参数就可以做同样的事情。该功能允许我将上述内容替换为:

var OrderStatusSearchQueryForm = document.createElement("form");
stakmagic("Operation", "Search", OrderStatusSearchQueryForm);
stakmagic("SearchFieldValue", document.formonpage.searchString.value, OrderStatusSearchQueryForm);
OrderStatusSearchQueryForm.submit();

我不知道你在问什么。你可能已经回答了你自己的问题。但是如果你想要这个功能,你可以:

function stakmagic(name, value, form) {
    var Input = document.createElement("input");
    Input.name = name;
    Input.value = value;
    form.appendChild(Input);
}

我不知道你在问什么。你可能已经回答了你自己的问题。但是如果你想要这个功能,你可以:

function stakmagic(name, value, form) {
    var Input = document.createElement("input");
    Input.name = name;
    Input.value = value;
    form.appendChild(Input);
}
var inps=“……等”;
document.getElementByID('mydiv').innerHTML(inps);
这将同时创建所有元素。

var inps=“……etc”;
document.getElementByID('mydiv').innerHTML(inps);

这将同时创建所有元素。

显然,您可以使用函数,但为什么不让HTML解析器为您创建DOM,这实际上比您自己创建DOM更简单

var html = '<form id="myform">' +
           '<input name="Operation" value="Search" />' +
           '<input name="SearchFieldValue" value="' +
           document.formonpage.searchString.value +
           '" /></form>';

document.getElementById("form-container").innerHTML = html;

document.getElementById("myform").submit();
var html=''+
'' +
'';
document.getElementById(“表单容器”).innerHTML=html;
document.getElementById(“myform”).submit();
显然,即使这样也不是最优的,因为javascript中有大量硬编码的html。但是 这个问题也与您的原始javascript有关。目前最干净、最简单的方法是
. 您将能够像维护普通HTML一样维护HTML,并使用很少的代码来完成同样的事情。

显然,您可以使用函数,但为什么不让HTML解析器为您创建DOM,这实际上比您自己创建DOM要困难得多

var html = '<form id="myform">' +
           '<input name="Operation" value="Search" />' +
           '<input name="SearchFieldValue" value="' +
           document.formonpage.searchString.value +
           '" /></form>';

document.getElementById("form-container").innerHTML = html;

document.getElementById("myform").submit();
var html=''+
'' +
'';
document.getElementById(“表单容器”).innerHTML=html;
document.getElementById(“myform”).submit();
显然,即使这样也不是最优的,因为javascript中有大量硬编码的html。但是 这个问题也与您的原始javascript有关。目前最干净、最简单的方法是
. 您将能够像维护普通HTML一样维护HTML,并使用很少的代码来完成同样的事情。

我想知道是否可以编写一个函数,只需要几个参数就可以完成同样的事情。
是的。谢谢大家。是的,这看起来像一个愚蠢的问题,但我有一些我没有想到的事情,比如使用html解析器。我不清楚的是在“设置一些重要的值”区域,我需要修改一些值,因此没有找到快速找到它们的方法。
我想知道我是否可以编写一个函数,只需要几个参数就可以做同样的事情。
是的。谢谢大家。是的,这看起来像一个愚蠢的问题,但我有一些我没有想到的事情,比如使用html解析器。我不清楚的是在“设置一些重要的值”区域,我需要修改一些值,因此没有找到快速找到它们的方法。这就是我所问的问题的答案。谢谢我应该更清楚地知道,我需要能够获得在这个函数中创建的这些东西。我想在函数中添加“Input.id=name;”,然后在原始函数中添加“OrderStatusSearchQueryForm.getElementById(someName)”就可以了。是的,一旦在函数中添加输入,就可以访问函数外部的输入。这就是我所问的问题的答案。谢谢我应该更清楚地知道,我需要能够获得在这个函数中创建的这些东西。我想在函数中添加“Input.id=name;”,然后再在原始函数中添加“OrderStatusSearchQueryForm.getElementById(someName)”就可以了。是的,一旦在函数中添加输入,就可以访问函数外部的输入。