动态更改表单操作URL无效

时间:2010-09-11 06:04:02

标签: 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>

THX。

1 个答案:

答案 0 :(得分:6)

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

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

应该是:

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

您还需要使用getform简写获取[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();
}