js中alert("一个已定义并赋值过的变量"+a),结果却显示undefined!!

树上跳舞的鱼 2016-04-14 10:47:58
我最近用SSH2在做一个小项目,在实现分页这部分,碰到了好多问题,比如这个undefined问题。
js代码:
<script type="text/javascript">
var curPage=$("#pageIndex").val();
var totalPageCount=$("#totalPageCount").val();
function previousPage(){
if(parseInt(curPage)>0){
document.searchForm.pageIndex.value=parseInt(curPage)-1;
}
document.searchForm.submit();
}

function nextPage(){
alert(curPage);
if(parseInt(curPage)<parseInt(totalPageCount)){
document.searchForm.pageIndex.value=parseInt(curPage)+1;
}
document.searchForm.submit();
}

function clickPage(index){
if(parseInt(index)>0 &&parseInt(index)<=parseInt(totalPageCount)){
$("#pageIndex").attr("value",index);
document.searchForm.submit();
}
}
</script>
其中curPage是获取当前页码的变量,totalPageCount是获取总页数的变量,previousPage()、nextPage()、clickPage(index)分别实现上一页、下一页、跳转到指定页码这三个功能,可惜这三个功能都没有成功实现,于是调试的时候在nextPage()中加了
alert(curPage);结果运行起来显示的是undefined!!感觉好诧异,为什么得不到正确的值?无法理解。望高手们能为我释疑解惑
...全文
789 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
树上跳舞的鱼 2016-04-15
  • 打赏
  • 举报
回复
引用 18 楼 ch1240249252 的回复:
不是一点点的改动就能OK的,你改干净点
是我太粗心了。经过我一下午的细心检查及调试,现在终于能正确运行了,之前最大的错误是把jQuery对象的方法直接用在了DOM对象上,我实在是太!有!才!了!!!
树上跳舞的鱼 2016-04-15
  • 打赏
  • 举报
回复
引用 5 楼 Q80470101 的回复:
$("#pageIndex") 这个对象找不到
不是找不到这个对象,把var curPage=$("#pageIndex").val();放在nextPage()方法里边是可以得到正确的值的。
树上跳舞的鱼 2016-04-15
  • 打赏
  • 举报
回复
引用 4 楼 xpxpxpx 的回复:
curPage定义的时候页面元素还没加载完成吧。 把这整段js代码加到$(document ).ready(function() {}或者$(function() {}里面
这样运行起来连提示框都没有了,alert()都不起作用了。。。
树上跳舞的鱼 2016-04-15
  • 打赏
  • 举报
回复
引用 3 楼 scmod 的回复:
这是因为页面加载时候var curPage=$("#pageIndex").val();这个赋值就是没有吧 你把alert(curPage);改成alert($("#pageIndex").val());看看
这样可以的,可以得到正确的值。可是这是为什么?我那样写应该是没有语法错误的啊,讲道理的话我那样写和你这样不是一样的吗?
家里敷泥呀 2016-04-15
  • 打赏
  • 举报
回复
$("#pageIndex") 这个对象找不到
xpxpxpx 2016-04-15
  • 打赏
  • 举报
回复
curPage定义的时候页面元素还没加载完成吧。 把这整段js代码加到$(document ).ready(function() {}或者$(function() {}里面
scmod 2016-04-15
  • 打赏
  • 举报
回复
这是因为页面加载时候var curPage=$("#pageIndex").val();这个赋值就是没有吧 你把alert(curPage);改成alert($("#pageIndex").val());看看
jamesge2010 2016-04-15
  • 打赏
  • 举报
回复
Js的问题只有一步步来,你先在function外部看看能不能得到current值
奄灬苟且偷生 2016-04-15
  • 打赏
  • 举报
回复
你能改的 干净点吗?
function previousPage(){	
var curPage=document.getElementById("pageIndex").value;
alert(curPage); 
if(parseInt(curPage)>0){//这是什么鬼?你不是说改了吗?
document.searchForm.pageIndex.value=parseInt(curPage)-1;
}
document.searchForm.submit();
}

function nextPage(){
var curPage1=document.getElementById("pageIndex").value;	
var totalPageCount=document.getElementById("totalPageCount").val(); 
alert(curPage1);
if(parseInt(curPage)<parseInt(totalPageCount)){//这又是什么鬼?你不是说改了吗?
document.searchForm.pageIndex.value=parseInt(curPage)+1;	//还有这
}
document.searchForm.submit();
}

function clickPage(index){
alert(index);
var totalPageCount=document.getElementById("totalPageCount").val(); 
if(parseInt(index)>0 &&parseInt(index)<=parseInt(totalPageCount)){
document.searchForm.pageIndex.value=index;
document.searchForm.submit();
}
}
我的天啊
奄灬苟且偷生 2016-04-15
  • 打赏
  • 举报
回复
不是一点点的改动就能OK的,你改干净点
树上跳舞的鱼 2016-04-15
  • 打赏
  • 举报
回复
可是为什么我把curPage、totalPageCount都放在了方法里边,方法还是没法成功运行?代码如下: function previousPage(){ var curPage=document.getElementById("pageIndex").value; alert(curPage); if(parseInt(curPage)>0){ document.searchForm.pageIndex.value=parseInt(curPage)-1; } document.searchForm.submit(); } function nextPage(){ var curPage1=document.getElementById("pageIndex").value; var totalPageCount=document.getElementById("totalPageCount").val(); alert(curPage1); if(parseInt(curPage)<parseInt(totalPageCount)){ document.searchForm.pageIndex.value=parseInt(curPage)+1; } document.searchForm.submit(); } function clickPage(index){ alert(index); var totalPageCount=document.getElementById("totalPageCount").val(); if(parseInt(index)>0 &&parseInt(index)<=parseInt(totalPageCount)){ document.searchForm.pageIndex.value=index; document.searchForm.submit(); } } previousPage()已经能够成功执行,可clickPage(index)无法正确跳转,但其中的alert()能正确响应,而nextPage()是完全无法执行,里边的alert()都没反应。请问这是什么鬼?
树上跳舞的鱼 2016-04-15
  • 打赏
  • 举报
回复
引用 13 楼 ch1240249252 的回复:
说白了就是你没把var curPage=$("#pageIndex").val();放在方法里,如果是java后台的话倒是可以通过statis初始化,但是这个你直接只调运一个小方法,是不会执行上面的,不信,你可以在上面也就是var curPage=$("#pageIndex").val();上面打一alert你就知道了
确实如此。。
树上跳舞的鱼 2016-04-15
  • 打赏
  • 举报
回复
引用 11 楼 sinat_31240689 的回复:
function nextPage(){ 你执行的时候它是不认识这个curPage的,并不是写在script中它就会获得到这个全局curPage的值
有道理。这样看来js里边全局变量其实没什么卵用了。
奄灬苟且偷生 2016-04-15
  • 打赏
  • 举报
回复
说白了就是你没把var curPage=$("#pageIndex").val();放在方法里,如果是java后台的话倒是可以通过statis初始化,但是这个你直接只调运一个小方法,是不会执行上面的,不信,你可以在上面也就是var curPage=$("#pageIndex").val();上面打一alert你就知道了
树上跳舞的鱼 2016-04-15
  • 打赏
  • 举报
回复
引用 10 楼 scmod 的回复:
[quote=引用 6 楼 xuzhenglin2010 的回复:] [quote=引用 3 楼 scmod 的回复:] 这是因为页面加载时候var curPage=$("#pageIndex").val();这个赋值就是没有吧 你把alert(curPage);改成alert($("#pageIndex").val());看看
这样可以的,可以得到正确的值。可是这是为什么?我那样写应该是没有语法错误的啊,讲道理的话我那样写和你这样不是一样的吗?[/quote] 放外面只运行一次啊,js加载完就运行了,那个时候一般页面还没加载完什么东西都没有的 放方法里面每次调用都会获取下[/quote] 所以说,必须要放在方法里边咯。。
  • 打赏
  • 举报
回复
function nextPage(){ 你执行的时候它是不认识这个curPage的,并不是写在script中它就会获得到这个全局curPage的值
scmod 2016-04-15
  • 打赏
  • 举报
回复
引用 6 楼 xuzhenglin2010 的回复:
[quote=引用 3 楼 scmod 的回复:] 这是因为页面加载时候var curPage=$("#pageIndex").val();这个赋值就是没有吧 你把alert(curPage);改成alert($("#pageIndex").val());看看
这样可以的,可以得到正确的值。可是这是为什么?我那样写应该是没有语法错误的啊,讲道理的话我那样写和你这样不是一样的吗?[/quote] 放外面只运行一次啊,js加载完就运行了,那个时候一般页面还没加载完什么东西都没有的 放方法里面每次调用都会获取下
家里敷泥呀 2016-04-15
  • 打赏
  • 举报
回复
引用 8 楼 xuzhenglin2010 的回复:
[quote=引用 5 楼 Q80470101 的回复:] $("#pageIndex") 这个对象找不到
不是找不到这个对象,把var curPage=$("#pageIndex").val();放在nextPage()方法里边是可以得到正确的值的。[/quote] 你的这段js代码是放在<body>上面?在上面的话,把它改到< / body >下面
树上跳舞的鱼 2016-04-14
  • 打赏
  • 举报
回复
顶起来,静等高手到来

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧