在开发中,有一个FORM,大概是这样的:
- <script>
- function formSubmit(){
- document.getElementById("form1").submit();
- }
- </script>
- <form action="xxx.php" id='form1' method="post">
- <a href="javascipt:;"><img src="xxx.gif" onclick="formSubmit();"></a>
- </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>结果也是失败的。
一年后,又是这个问题。。。记下来提醒一下自己,下次遇到时,先看看是否还是这个原因。