JS中window.location.replace跳转的问题
输入页号进行分页跳转window.location.replace("user_list.action?currentPage="+_currentPageNO);单这一...
输入页号进行分页跳转
window.location.replace("user_list.action?currentPage=" + _currentPageNO);
单这一句始终失败
如果后加个alert(window.location); 就可以正常跳转
但是很诡异的是 alert显示出来的location地址为上一次的值
搞不明白,是哪里使用错误了,导致无法直接跳转。
先是在input里,限制输入必须为数字,并且截取键盘事件
转到第<input type="text" id="currentPageNo" size="3" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"
onKeyDown="enterIn(event);"/>页
然后JS里处理跳转
function enterIn(evt){
............
if (evt.keyCode==13){
..............
window.location.href = "user_list.action?currentPage=" + _currentPageNO;
}
}
太长只能贴这么多
_currentPageNO的值没问题
会不会是onkeyup和onkeydown冲突了? 展开
window.location.replace("user_list.action?currentPage=" + _currentPageNO);
单这一句始终失败
如果后加个alert(window.location); 就可以正常跳转
但是很诡异的是 alert显示出来的location地址为上一次的值
搞不明白,是哪里使用错误了,导致无法直接跳转。
先是在input里,限制输入必须为数字,并且截取键盘事件
转到第<input type="text" id="currentPageNo" size="3" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"
onKeyDown="enterIn(event);"/>页
然后JS里处理跳转
function enterIn(evt){
............
if (evt.keyCode==13){
..............
window.location.href = "user_list.action?currentPage=" + _currentPageNO;
}
}
太长只能贴这么多
_currentPageNO的值没问题
会不会是onkeyup和onkeydown冲突了? 展开
2个回答
展开全部
最好把整个js方法贴出来,单单这一句,看不出来
追问
补充了一部分代码
用 replace或者window.location.href直接赋值都不行,在原页面上跳转,无法翻页
很奇怪的是 加上alert(window.location) 弹出提示框后就能跳转了、、
追答
可能是这样的,等你输入完成,按下回车键之后,同样执行了onKeyup动作的代码,此时onkeyDown还没执行完。因为回车按下之后,输入的不是数字,所以currentPageNo的值就替换为空了,enterIn(evt)方法里面一定有对空值得验证,验证不通过下面的代码就不再执行,所以根本就没执行if部分的代码,因此页面也就不跳转了;如果加入一个警告框,警告框出现的时候,阻断了onafterpaste和onkeyup动作后的代码执行,所以就能够跳转。具体是什么样子,你再分析一下,我没有看到完整的代码,不好分析的太准确,关键是最后按的那个回车键。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询