我有一个在2 .htm页面之间传递数据的任务,其方式是将源复制到目标。
sourcePage.htm包含一个表单。 (它包含更多控件,这只是一个示例)
<form id="myform" action="destPage.htm" method="get" >
<input type="text" name="user" />
<input type="submit" name="submit" value="Submit" />
</form>
和destPage.htm为空。
使用JavaScript我需要解析来自url的数据,那部分不是问题 ,问题是我还要求destPage与sourcePage完全相同。
我的问题是,如果有办法将表单作为对象传递,或者某种方式将控件类型及其属性传递给数据。
答案 0 :(得分:1)
您在ek_ny的答案中指定,您希望根据其输入动态构建表单。
事实上,您可以使用JavaScript DOM:
执行此操作var i = document.createElement('input');
i.setAttribute('type', "text");
i.setAttribute('name', "user");
var f = document.createElement('form');
f.setAttribute('action', "destpage.html");
// etc.
f.appendChild(i);
document.getElementById('container').appendChild(f);
表单将作为子项添加到<div id="container">
容器中。
现在您可以使用隐藏的输入元素,例如,它提供表单的细节:
<form>
<input type="hidden" name="x_type" value="input-text" />
<input name="x" type="text" />
<input type="hidden" name="y_type" value="select:[...]" />
<select name="y">
...
</select>
</form>
答案 1 :(得分:0)
据我所知,您将无法在两页之间发帖。至少当我尝试你得到一个错误时 - 从一个静态页面到另一个静态页面的帖子真的没有意义(对吧?)。您可以做的是序列化您想要传递的数据,将其放在url字符串中的下一页,然后反序列化该数据并填充目标页面上的控件。如果两个页面之间的html是相同的,那么它应该是非常简单的,如果不是它会有点小问题。如果您使用jQuery,那将非常简单,因为您可以序列化整个表单。如果你需要提出一个通用的解决方案(你应该,因为它会帮助你学习)这是一回事,如果你需要让它为这个任务工作而且只有几个表单字段,你将会只需要对要传递的值进行编码,并使用get请求将它们传递给URL字符串。