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>  

 

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

相關文章
相關標籤/搜索