如何使表单操作更改哈希而不是重新加载页面?

时间:2014-06-20 18:43:33

标签: javascript jquery html forms hash

我有一个拥有动态数据的网站,它基于'#'之后的数据。当我在URL中更改它时我的网站没有重新加载,但是当我在表单中更改它时会重新加载网页...

我怎样才能让它只是在#之后转换值而不重新加载页面?

<div id="but1">
 <form action="http://website.com/#800" enctype="multipart/form-data" method="post">
<input type="submit" value="Submit">
          </form>       
</div>

我可以在表单操作上调用javascript函数吗?我该怎么做?

3 个答案:

答案 0 :(得分:1)

是。您可以使用html中的onsubmit属性来调用函数列表:

<form onsubmit="myFunction(); return false;">

或者您可以使用jquery绑定on submit函数,如下所示:

$('form').submit(myFunction);

如果您希望处理服务器上的数据,可以使用JQuery ajax方法异步发送数据到另一个页面。

答案 1 :(得分:1)

这可能会有所帮助:

<form action="javascript:window.location.hash = 'tada'; return false;">
  <!-- just set the hash /-->
  <input type="submit" />
</form>

但是我想你也想开一个javascript?

<form action="#tada" onsubmit="something;">
  <input type="submit" />
</form>

答案 2 :(得分:0)

如果您只想更改哈希值,请不要POST。尝试这样的事情:

<form action="#800" method="GET">
    <input type="submit" value="Submit">
</form>

<a href="#800">Submit</a>这样的简单链接也会产生同样的效果。