jQuery表单提交后的冗余参数

时间:2014-09-11 21:57:28

标签: javascript jquery forms form-submit

我想在表单提交时重写表单操作URL。我在下面写了一个简短的Jquery代码。但是,提交表单后,URL始终为

/events/category/Red?cat=147003

冗余?cat = 147003 会导致HTTP 404错误。

如何获取仅

的表单操作网址
/events/category/Red (or)
/events/category/Blue

谢谢!

<form id="form1" action="" method="get">
  <select name="cat" id="cat" class="postform">     
     <option class="level-0" value="147003">Red</option>    
     <option class="level-0" value="147058">Blue</option> </select>
  <input value="Submit" class="colorFormSubmit" type="submit"> 
</form>

<script type="text/javascript">
  jQuery( "#form1" ).submit(function( event ) {
  var formActionUrl="/events/category/";
  formActionUrl += jQuery("#form1 :selected").text();
  jQuery("#form1").attr('action', formActionUrl);
  //alert(formActionUrl);
});
</script>

随访:

加入     jQuery的( “postform。”)removeAttr( '姓名');

现在有效。

2 个答案:

答案 0 :(得分:1)

将您的表单方法更改为POST(<form method="POST">)。使用GET时,它会在提交时将所有表单字段添加到URL。 POST将此信息作为邮件正文的一部分发送。无论您调用什么服务器,都可能需要更改以期望来自新源的值。

但是,如果您对传递值不感兴趣,那么您可以完全取消表单提交,只需重定向:

jQuery( "#form1" ).submit(function( event ) {
  var formActionUrl="/events/category/";
  formActionUrl += jQuery("#form1 :selected").text();
  window.location = formActionUrl;
  return false;
});

答案 1 :(得分:1)

如果从select中删除name属性,则应该阻止其值与表单的其余部分一起提交。