带有location.href的HTML表单onSubmit属性问题

时间:2014-05-20 16:54:26

标签: javascript html forms

我有一个表格,其开头标记看起来像这个

<form name="adv_search_form" action="" onSubmit="location.href = location.href.split('#')[0]+'&adv_search=adv_search'" method="POST">

实际上,location.href的值为http://localhost/projectcode12may2014/ampanel/index.php?rel=common_listing&module=company#

我希望在提交表单时向网址附加&adv_search=adv_search,在从网址中移除#以使其$_GET能够之后也是如此。 所以当我做的时候

<form name="adv_search_form" action="" onSubmit="location.href = location.href+'&adv_search=adv_search'" method="POST">

事情很顺利但是哈希在网址中仍然存在。所以我使用了表单开头标记作为前一个。但是当我这样做时,没有任何反应,网址根本没有变化。任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

使用子字符串方法来消除&#39;#&#39;最后:

location.href = location.href.substring( 0, location.href.length-1 ) +
                '&adv_search=adv_search';

答案 1 :(得分:0)

我建议您使用PHP处理正确的onSubmit URL,并且不要依赖客户端location.href。可能导致不必要的行为。

如果你真的想要它,那么你可以使用str.replace()。

original = location.href+'&adv_search=adv_search';
original.str_replace('#', '');

答案 2 :(得分:0)

我得到了解决问题的方法。网址正在发生变化,但在提交表单时,action覆盖了该网址。我必须通过在onSubmit属性中添加return false来弃用表单的默认行为。 不管怎样,谢谢你的回答。