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. <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>
 
 
解决方法二
点击事件中  onclick="checkUser()"  变成 onclick="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. 遇到问题-----JS中设置window.location.href跳转无效(在a标签里或这form表单里)

    问题情况 JS中设置window.location.href跳转无效 代码如下: ? 1 2 3 4 5 6 7 8 <script type="text/javascript&quo ...

  2. javascript 中设置window.location.href跳转无效问题解决办法

    javascript 中设置window.location.href跳转无效问题解决办法 问题情况 JS中设置window.location.href跳转无效 原因是 a标签的href跳转会执行在wi ...

  3. window.location.href跳转问题

    任务中遇到这样一个问题,用window.location.href跳转一到个网址,但是每次都出错,显示网址前面加上了文件所在文件夹的路径 示例如下: window.location.href=&quo ...

  4. window.location.href 跳转失败

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

  5. window.location.href跳转问题2

    "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...

  6. 微信内置的浏览器window.location.href 跳转不兼容问题

    1.不兼容苹果手机---->>>>使用模拟触发a标签 <a id="alink" href="http://www.baidu.com&qu ...

  7. window.location.href 跳转无历史记录

    需求:从页面a单点登录跳至页面b,在页面b里做判断符合条件后location.href至c页面 问题:在页面c中点击返回按钮页面回到了a,正常情况下应该回到页面b 原因:在当前页面的 onload 事 ...

  8. window.location.href = window.location.href 跳转无反应 a 超链接 onclick 点击跳转无反应

    错误写法 , 主要是在 href="#"这里 <a href="#" id="send" onclick="return b ...

  9. window.location.href跳转至空白页

    现象:window.location.href = "XXX"调到了空白页,但是将XXX在窗口地址栏输入就会可以访问到. 原因:就是XXX前缀没有加上"http://&q ...

随机推荐

  1. 02【Collection、泛型】

    主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList<E> ,那么集合 ...

  2. PMP各种图比较记忆

    1.控制图:监控过程是否稳定,是否具有可预测的绩效,在问题还未发生时解决.需要关注控制图中的平均值.控制界限.规格界限的含义.控制上.下限一般设为±3个西格玛.过程失控的情况包括数据点在控制界限外,以 ...

  3. C#设计模式之4-原型模式

    原型模式(Prototype Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/395 访问. 原型模式属 ...

  4. Vue 使用$createElement自定义文本

    有时候弹窗或者一些特殊的区域需要自定义一些html元素来显示(snabbdom) const h = this.$createElement this.$msgbox({ title: '提示', m ...

  5. 树堆(Treap)学习笔记 2020.8.12

    如果一棵二叉排序树的节点插入的顺序是随机的,那么这样建立的二叉排序树在大多数情况下是平衡的,可以证明,其高度期望值为 \(O( \log_2 n )\).即使存在一些极端情况,但是这种情况发生的概率很 ...

  6. 2020大厂web前端面试常见问题总结

    本篇收录了一些面试中经常会遇到的经典面试题以及自己面试过程中遇到的一些问题.通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者. 1.web前端项目的结构是怎样的?文件有哪些命名规范? 项 ...

  7. 细讲前端设置cookie, 储存用户登录信息

    细讲前端设置cookie 引言 正文 一.设置cookie 二.查看cookie 三.删除cookie 四.封装cookie操作 结束语 引言 我们都知道如果想做一个用户登录并使浏览器保存其登录信息, ...

  8. 使用folderLeft函数统计字母出现的次数

    实例:统计字符串中字母出现的次数 import scala.collection.mutable object Demo_018{ def main(args: Array[String]): Uni ...

  9. Vue管理系统前端系列二相关工具引入及封装

    目录 sass-loader/vuex 等的引入说明 引入 element 引入 axios 1.基本使用 2.封装使用 2.1 开发环境配置请求地址 2.2 配置代理 2.3 添加接口相关文件 sa ...

  10. golang ctrie demo

    下载ctrie: go get -t github.com/Workiva/go-datastructures/trie/ctrie 测试demo1: package main import ( &q ...