4

下面是我的 Javascript 代码,其中 k 和 m 是 Javascript 变量。

function javascriptfunction() {
  document.forms[formname].action="gotopage.php?parameter1="+k+"&parameter2="+m;
  document.forms[formname].submit();
}

当我的 HTML 表单具有 POST 方法时,上面的代码可以正确执行。下面是我的 HTML 页面:

<form name="formname" action=# method=POST>
  <input type=text name="data1" value="one">
  <input type=text name="data1" value="two">
  <input type=button name="button1" value="send" onclick="javascritfunction();">
</form>

但是当我在我的 HTML 表单中给出一个 GET 方法时,就会提交 HTML 表单数据,即

gotopage.php?data1=one&data2=two is submitting not Javascript action value i.e
gotopage.php?parameter1="+k+"&parameter2="+m

那么在HTML表单中方法为GET时如何提交带有Javascript参数的表单呢?

4

2 回答 2

7

提交 GET 表单会将操作中的查询字符串替换为表单数据。

而是将数据放在隐藏的输入中。

于 2013-07-22T13:51:27.037 回答
0

在 GET 请求中,除了查询参数字符串之外,表单数据无处可去。正如 Quentin 指出的那样,查询字符串会自动与表单字段键值对交换。所以你必须使用隐藏字段来包含额外的数据。

在 POST 请求中,您还可以使用查询参数字符串,如果您想使用它,但表单数据会插入到请求有效负载中(GET 请求没有),因此不会干扰查询字符串. 这就是为什么您可以使用您喜欢的任何查询字符串自定义操作 url。

于 2013-07-22T14:07:56.057 回答