手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

FORM不能跳转?

首页 > Javascript >

在开发中,有一个FORM,大概是这样的:

XML/HTML代码
  1. <script>  
  2. function formSubmit(){  
  3.    document.getElementById("form1").submit();  
  4. }  
  5. </script>  
  6. <form action="xxx.php" id='form1' method="post">  
  7. <a href="javascipt:;"><img src="xxx.gif" onclick="formSubmit();"></a>  
  8. </form>  

xxx.php里面是header跳转。然后问题就发生了。这个FORM是提交了,但,就是不能跳转。这是为什么呢,为什么呢?

如果把<a>标签和img标签去掉,换成<input type="button" onclick="formSubmit()">,那就提交成功也跳转成功。为什么用<a>标签就不行呢?

怀疑是<a>标签的href="javascript:;">的返回而导致了跳转提交的失败,于是把<a>标签去掉,在img标签中加上onclick,果然成功。

当初采用<a>标签是因为鼠标样式的关系,既然知道这个原因,那么就尝试把href="javascript:;"改成传统的"#",跳转成功(用#的缺点在于,#是锚点,如果啥也不加,那么点击后,页面会自动滚动到顶部,不利于用户体验)

或者,不使用<a>标签,直接就在<img>标签上加上样式style="cursor:pointer",也可以让鼠标移动到图片就是显示一个小手了。

至此,问题解决。其实以前也遇到过这个问题,当初也是在一个FORM里,当初的链接是<a href="javascript:functions();void(0)">xx</a>结果也是失败的。

一年后,又是这个问题。。。记下来提醒一下自己,下次遇到时,先看看是否还是这个原因。

 




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

2条记录访客评论

加一个不存在的锚点还真的没有试过。。。不过,这些都毕竟算是不规范的作法了。偶尔用用,呵呵

Post by gouki on 2009, May 28, 9:30 PM 引用此文发表评论 #1

是的,<a href="#">mylink</a>,这样确实会让页面跳到顶部,但是有个简单的方法就是在#后面再加上一些字符就不会跳转了,原因很简单,在当前页面没有找到这个书签。我经常写成这样<a href="#@">mylink</a>,这样页面是不会滚动的

Post by gently on 2009, May 28, 9:07 PM 引用此文发表评论 #2


发表评论

评论内容 (必填):