【问题标题】:Redundant parameter after jQuery form submissionjQuery表单提交后的冗余参数
【发布时间】:2014-09-11 21:57:28
【问题描述】:

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

/events/category/Red?cat=147003

多余的 ?cat=147003 导致 HTTP 404 错误。

我怎样才能得到一个表单操作 URL 只是

/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('name');

现在可以使用了。

【问题讨论】:

  • 将您的方法更改为 POST

标签: javascript jquery forms form-submit


【解决方案1】:

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

【讨论】:

  • 谢谢。我添加了 jQuery(".postform").removeAttr('name');而且效果很好。
【解决方案2】:

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

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

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

【讨论】:

  • 改成 POST 但还是不行。我删除了“名称”属性并且它起作用了。
猜你喜欢
  • 2012-09-13
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 2023-04-08
  • 2013-05-25
相关资源
最近更新 更多