问题情况

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. <div class="extra">
  11. <a class="ui blue right floated primary button" onclick="checkUser()"  href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime }">确认预订</a>
  12. </div>

解决方法二

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

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

代码如下:

[html] view plain copy

  1. <script type="text/javascript">
  2. function checkUser()
  3. {
  4. if(<%=flag%>!=1){
  5. window.location.href="login.jsp";
  6. return false;
  7. }
  8. }
  9. </script>
  10. <div class="extra">
  11. <a class="ui blue right floated primary button" onclick="return checkUser();"
  12. href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime
  13. }">确认预订</a>
  14. </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. <form action="addRoom" method="post"   name="from" id="form">
  10. <table align="center" border="1" class="commTable">
  11. <tr>
  12. <td class="right"><span
  13. style="font-weight: blod;">房号:</span></td>
  14. <td><input type="text" name="roomNum" size="25"
  15. id="roomNum" /></td>
  16. </tr>
  17. <tr>
  18. <td colspan="2" align="center"><button   value="添加"
  19. onclick="checkUser()" /></td>
  20. </tr>
  21. </table>
  22. </form>

声明:本文为转载,再次十分百分千分万分感谢博主的分享,谢谢。

window location href跳转无效相关推荐

  1. window.location.href跳转无效 IE Bug【转载】

    window.location.href跳转的ie bug 2010-10-25 17:36 http://support.microsoft.com/kb/190244/en-us 在ie下,< ...

  2. window.location.href 跳转失败

    我恨这个问题,因为困扰已久,做为一个不称职的半开发人员,对前端非常不熟,程度仅限于alert调试的水平 这个问题似乎是IE的一个傻逼哄哄的BUG引起的,在AJAX盛行的今天,当在返回success状态 ...

  3. js如何获取window.location.href跳转后查询字符串的值?

    $("#worked_count").parent().attr("onClick","window.location.href='view/warn ...

  4. window.location.href跳转到的页面,获取值

    思路 : 先用字符串方法split获取?后面的所有数据,然后再用split('&')获取所有分完组的对应值,再用split对各个组进行('=')号分割,再用{}的=全部组起来 // 咱们这里用 ...

  5. Window.location.href命令在JS中跳转无效或自动忽略

    最近在做一个跳转本页面后提示信息window.location.href只能跳转一次,之后就自动忽略了.在下面加事件返回值即可跳转成功,注意:若在form提交函数中,则不会提交表单:若在超链接标签中, ...

  6. 关于js中window.location.href、location.href 等如何跳转

    关于js中"window.location.href"."location.href"."parent.location.href".&qu ...

  7. input onclick=window.location.href='https://www'不能跳转问题。

    使用input onclick属性跳转是遇到问题..不能跳转 上面的onclick里面应该怎么写?我试了几次都不行不知道是不是方法有问题 <input type="button&quo ...

  8. 【报错笔记】在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller

    在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller 解决方案:使用a链接来用

  9. 用window.location.href实现页面跳转

    在写ASP.Net程序的时候,我们经常遇到跳转页面的问题,我们经常使用Response.Redirect ,如果客户要在跳转的时候使用提示,这个就不灵光了,如: Response.Write(&quo ...

最新文章

  1. 图解TCP、IP笔记
  2. python创建csv文件并写入-【已解决】Python中创建和保存数据到csv文件中
  3. java统计词频算法_java实现的统计字符算法示例
  4. BBR开启教程(转)
  5. 【白皮书分享】5G智慧城市安全需求与架构白皮书.pdf(附下载链接)
  6. 线程并发与进程并发各有什么you_【白话计算机基础】并发与并行,进程、线程与协程, 同步与异步,阻塞与非阻塞...
  7. 【QT】简单易学的QT安装教程
  8. python get请求下载excel_用Python下载Sharepoint Excel文件
  9. android 糖果条纹进度条,小破站别出心裁,咒术回战进度条是高专纽扣,堀与宫村是糖果...
  10. 爱加密加密Android apk 使用步骤
  11. 3DoF+ Video简介
  12. (四)进程的生命周期——起源
  13. 数字IC设计工程师的知识结构(转载学习)
  14. lower_bound,upper_bound的第四个参数的用法
  15. android 自动上传手机图库,将iCloud照片传输到Android的3种方法
  16. ESP32学习笔记(27)——BLE GAP主机端扫描
  17. ReadWriteLock读写锁加锁过程
  18. 刘未鹏逃出肖申克系列链接
  19. 计算机安装两个键盘会怎样,一台电脑可以同时装两个键盘吗?而且互不干扰 – 手机爱问...
  20. 分享给大家几个好玩的网站

热门文章

  1. matlab图标是什么,Matlab图标的制作|使用mathematica绘制matlab图标
  2. 看东南亚年末双节爆品图鉴,抢占旺季流量
  3. 基于Quick-cocos2d-x的资源更新方案 二
  4. android系统如何获取imei号码,获取手机型号和系统版本号
  5. h5使用canvas模拟制作的中国象棋实现残局走子
  6. windows获取网卡信息并判断是否是物理网卡 网络适配器的判断
  7. C++核心编程【只讲解C++语言特性,需要有C语言基础】
  8. Mysql 关于月份
  9. VScode远程连接服务器-过程试图写入的管道不存在-could not establist connection to【已解决】
  10. TFN分布式电磁信号监测定位系统FDK系列