window.location.href跳轉無效


 
 
問題情況
JS中設置window.location.href跳轉無效
 
原因是 a標簽的href跳轉會執行在window.location.href設置的跳轉之前:
如果是表單form的話  也會先執行form提交。
提交之后 就已經不在當前頁面了。所以 window.location.href無效。
 
解決方法一
在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>  
 
 
 
解決方法三
感謝 qmm0523 在評論中提出這種解法
如果是form體提交的話還可以把summit改成button調用js提交,這樣window.location.href也會在js提交summit之前執行成功跳轉。
如下:
[html]  view plain  copy
  1. function checkUser()  
  2. {   
  3.      if(<%=flag%>!=1){  
  4.         window.location.href="login.jsp";  
  5.      return false;  
  6.      }  
  7.  document.getElementById("form").submit();  
  8. }  
  9.   
  10.   
  11.     <form action="addRoom" method="post"   name="from" id="form">  
  12.             <table align="center" border="1" class="commTable">  
  13.                 <tr>  
  14.                     <td class="right"><span  
  15.                         style="font-weight: blod;">房號:</span></td>  
  16.                     <td><input type="text" name="roomNum" size="25"  
  17.                         id="roomNum" /></td>  
  18.                 </tr>  
  19.                 <tr>  
  20.                     <td colspan="2" align="center"><button   value="添加"  
  21.                         onclick="checkUser()" /></td>  
  22.                 </tr>  
  23.             </table>  
  24.         </form>  

 

聲明:本文為轉載,再次十分百分千分萬分感謝博主的分享,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM