如何有效地向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)”就可以了。是的,一旦在函数中添加输入,就可以访问函数外部的输入。