javascript在a标签中的location.href坑

本文转自:https://blog.csdn.net/qq_37837134/article/details/79242148

在a标签中使用location.href无效

原因:a标签中先执行href,然后才是location.href此时已经跳转到了新的页面,所以location.href无效

在form表单中也是一样,会先执行form提交再location.href,所以也会无效

解决办法一:在a标签中将href中的内容用#,使用空也是会跳转的<a href=" #"></a>

解决办法二:

在js函数中加上

window.event.returnValue=false

这个属性放到提交表单中的onclick事件中在这次点击事件不会提交表单,如果放到超链接中则在这次点击事件不执行超链接href属性。

改成如下代码后window.location.href成功跳转:

[html] view plain copy

  1. <script type="text/javascript">  
  2.    function checkUser()  
  3. {   
  4.      if(2!=1){  
  5.         window.location.href="login.jsp";    
  6.      window.event.returnValue=false;  
  7.      }  
  8. }  
  9.   </script>   
  10.   
  11. <div class="extra">  
  12.           <a class="ui blue right floated primary button" onclick="checkUser()"  href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime }">确认预订</a>  
  13.            </div>  

解决办法三:

点击事件中  onclick="checkUser()"  变成 onclick="return checkUser();"

并且在 checkUser中 return  false;这样的话 a标签的href也不会执行。 这样就能window.location.href顺利跳转。

代码如下:

[html] view plain copy

  1.  <script type="text/javascript">  
  2.     
  3.    function checkUser()  
  4. {   
  5.      if(<%=flag%>!=1){  
  6.         window.location.href="login.jsp";  
  7.      return false;  
  8.      }  
  9. }  
  10.   </script>  
  11.   
  12.  <div class="extra">  
  13.           <a class="ui blue right floated primary button" onclick="return checkUser();"    
  14.   
  15. href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime   
  16.   
  17. }">确认预订</a>  
  18.            </div>  

猜你喜欢

转载自blog.csdn.net/sinat_38708970/article/details/81301403