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" οnclick="checkUser()"  href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime }">确认预订</a>  
  13.            </div>  

解决办法三:

点击事件中  οnclick="checkUser()"  变成 οnclick="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" οnclick="return checkUser();"    
  14.   
  15. href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime   
  16.   
  17. }">确认预订</a>  
  18.            </div>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值