javascript - 动态更改表单操作 URL 无效

标签 javascript url forms dynamic action

当动态更改表单操作 URL 时,当表单提交时,它仍将使用默认操作 URL,有人知道为什么吗?请看下面的一个简单示例:

<form action="test.php" method="get" id="test">
  <select name="id" onChange="formSubmit(this)">
    <option value="abc">abc</option>
    <option value="xyz">xyz</option>
  </select>
</form>

<script type="text/javascript">
function formSubmit(element){
  var url = $("#test").attr("action", url);
  var newParam = "&new=123";

  url += "?" + element.name + "=" + element.value + newParam;
  //e.g. formurl now = 'test.php?id=xyz&new=123';

  $("#test").attr("action", url);
  $("#test").submit();//the form will submit to test.php?id=xyz instead of the new URL
}
</script>

谢谢。

最佳答案

您最初在第一行将空值分配给 url 变量:

var url = $("#test").attr("action", url);

应该是:

var url = $("#test").attr("action");

您还需要使用 get 获取 form 元素或 [0] 速记:

$("#test")[0].submit();

你的函数应该是这样的:

function formSubmit(element){
  var url = $("#test").attr("action");
  var newParam = "&new=123";
  url += "?" + element.name + "=" + element.value + newParam;
  $("#test").attr("action", url);
  $("#test")[0].submit();
}

关于javascript - 动态更改表单操作 URL 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3690010/

相关文章:

javascript - 如何全局禁用 tab 键,除了使用 JavaScript 的页面中的所有表单?

google-maps - Google map API 标记图标 URL?

r - 如何修复 R 中的 "no lines available in input"错误?

javascript - 在 ng-template 中访问 FormArray 引用

html - 提交按钮在 IE 中有紫色边框,但在 Chrome 中没有。我如何在 IE 中摆脱它?

javascript - 如何通过 "radio"实现 "button"

JavaScript 事件不仅在第一个元素上

javascript - Node.js nvm 和 npm 目录结构

javascript - 当 Internet Explorer 开发人员工具栏可见时,注销仅适用于 Internet Explorer(11)

javascript - 如何根据所使用的 URL 使用 javascript 更改页面内容?