我想在表单提交时重写表单操作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( '姓名');
现在有效。
答案 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属性,则应该阻止其值与表单的其余部分一起提交。