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
- <script type="text/javascript">
- function checkUser()
- {
- if(2!=1){
- window.location.href="login.jsp";
- window.event.returnValue=false;
- }
- }
- </script>
- <div class="extra">
- <a class="ui blue right floated primary button" onclick="checkUser()" href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime }">确认预订</a>
- </div>
解决方法二
点击事件中 οnclick="checkUser()" 变成 οnclick="return checkUser();"
并且在 checkUser中 return false;这样的话 a标签的href也不会执行。 这样就能window.location.href顺利跳转。
代码如下:
[html] view plain copy
- <script type="text/javascript">
- function checkUser()
- {
- if(<%=flag%>!=1){
- window.location.href="login.jsp";
- return false;
- }
- }
- </script>
- <div class="extra">
- <a class="ui blue right floated primary button" onclick="return checkUser();"
- href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime
- }">确认预订</a>
- </div>
解决方法三
感谢qmm0523 在评论中提出这种解法
如果是form体提交的话还可以把summit改成button调用js提交,这样window.location.href也会在js提交summit之前执行成功跳转。
如下:
[html] view plain copy
- function checkUser()
- {
- if(<%=flag%>!=1){
- window.location.href="login.jsp";
- return false;
- }
- document.getElementById("form").submit();
- }
- <form action="addRoom" method="post" name="from" id="form">
- <table align="center" border="1" class="commTable">
- <tr>
- <td class="right"><span
- style="font-weight: blod;">房号:</span></td>
- <td><input type="text" name="roomNum" size="25"
- id="roomNum" /></td>
- </tr>
- <tr>
- <td colspan="2" align="center"><button value="添加"
- onclick="checkUser()" /></td>
- </tr>
- </table>
- </form>
声明:本文为转载,再次十分百分千分万分感谢博主的分享,谢谢。
window location href跳转无效相关推荐
- window.location.href跳转无效 IE Bug【转载】
window.location.href跳转的ie bug 2010-10-25 17:36 http://support.microsoft.com/kb/190244/en-us 在ie下,< ...
- window.location.href 跳转失败
我恨这个问题,因为困扰已久,做为一个不称职的半开发人员,对前端非常不熟,程度仅限于alert调试的水平 这个问题似乎是IE的一个傻逼哄哄的BUG引起的,在AJAX盛行的今天,当在返回success状态 ...
- js如何获取window.location.href跳转后查询字符串的值?
$("#worked_count").parent().attr("onClick","window.location.href='view/warn ...
- window.location.href跳转到的页面,获取值
思路 : 先用字符串方法split获取?后面的所有数据,然后再用split('&')获取所有分完组的对应值,再用split对各个组进行('=')号分割,再用{}的=全部组起来 // 咱们这里用 ...
- Window.location.href命令在JS中跳转无效或自动忽略
最近在做一个跳转本页面后提示信息window.location.href只能跳转一次,之后就自动忽略了.在下面加事件返回值即可跳转成功,注意:若在form提交函数中,则不会提交表单:若在超链接标签中, ...
- 关于js中window.location.href、location.href 等如何跳转
关于js中"window.location.href"."location.href"."parent.location.href".&qu ...
- input onclick=window.location.href='https://www'不能跳转问题。
使用input onclick属性跳转是遇到问题..不能跳转 上面的onclick里面应该怎么写?我试了几次都不行不知道是不是方法有问题 <input type="button&quo ...
- 【报错笔记】在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller
在maven项目中jsp页面使用window.location.href给controller传参时参数过长所以路径无法跳转至controller 解决方案:使用a链接来用
- 用window.location.href实现页面跳转
在写ASP.Net程序的时候,我们经常遇到跳转页面的问题,我们经常使用Response.Redirect ,如果客户要在跳转的时候使用提示,这个就不灵光了,如: Response.Write(&quo ...
最新文章
- 图解TCP、IP笔记
- python创建csv文件并写入-【已解决】Python中创建和保存数据到csv文件中
- java统计词频算法_java实现的统计字符算法示例
- BBR开启教程(转)
- 【白皮书分享】5G智慧城市安全需求与架构白皮书.pdf(附下载链接)
- 线程并发与进程并发各有什么you_【白话计算机基础】并发与并行,进程、线程与协程, 同步与异步,阻塞与非阻塞...
- 【QT】简单易学的QT安装教程
- python get请求下载excel_用Python下载Sharepoint Excel文件
- android 糖果条纹进度条,小破站别出心裁,咒术回战进度条是高专纽扣,堀与宫村是糖果...
- 爱加密加密Android apk 使用步骤
- 3DoF+ Video简介
- (四)进程的生命周期——起源
- 数字IC设计工程师的知识结构(转载学习)
- lower_bound,upper_bound的第四个参数的用法
- android 自动上传手机图库,将iCloud照片传输到Android的3种方法
- ESP32学习笔记(27)——BLE GAP主机端扫描
- ReadWriteLock读写锁加锁过程
- 刘未鹏逃出肖申克系列链接
- 计算机安装两个键盘会怎样,一台电脑可以同时装两个键盘吗?而且互不干扰 – 手机爱问...
- 分享给大家几个好玩的网站
热门文章
- matlab图标是什么,Matlab图标的制作|使用mathematica绘制matlab图标
- 看东南亚年末双节爆品图鉴,抢占旺季流量
- 基于Quick-cocos2d-x的资源更新方案 二
- android系统如何获取imei号码,获取手机型号和系统版本号
- h5使用canvas模拟制作的中国象棋实现残局走子
- windows获取网卡信息并判断是否是物理网卡 网络适配器的判断
- C++核心编程【只讲解C++语言特性,需要有C语言基础】
- Mysql 关于月份
- VScode远程连接服务器-过程试图写入的管道不存在-could not establist connection to【已解决】
- TFN分布式电磁信号监测定位系统FDK系列