当前位置: 代码迷 >> Web前端 >> Display Tag 扩张――输入框跳转分页
  详细解决方案

Display Tag 扩张――输入框跳转分页

热度:755   发布时间:2012-11-25 11:44:31.0
Display Tag 扩展――输入框跳转分页
Display Tag真是弄得我焦头烂额。。。

将displaytag.properties配置文件中的以下三项替换:
paging.banner.full:
<span class="pagelinks">[<a href="{1}">首页</a>/<a href="{2}">上页</a>] {0} [<a href="{3}">下页</a>/<a href="{4}">末页</a>]跳转到第<input name="tz" id="tz" size="1" type="text" style="width: 23px" />页<input type="button" onclick="OtherPage_Go();" value="GO"/><input id="hd" name="hd" type="hidden" value="{1}"/></span>

paging.banner.first:
<span class="pagelinks">[首页/上页] {0} [<a href="{3}">下页</a>/<a href="{4}">末页</a>]跳转到第<input name="tz" id="tz" size="1" type="text" style="width: 23px" />页<input type="button" onclick="firstPage_Go();" value="GO"/><input id="hd" name="hd" type="hidden" value="{1}"/></span>

paging.banner.last:
<span class="pagelinks">[<a href="{1}">首页</a>/<a href="{2}">上页</a>] {0} [下页/末页]跳转到第<input name="tz" id="tz" size="1" type="text" style="width: 23px" />页<input type="button" onclick="OtherPage_Go();" value="GO"/><input id="hd" name="hd" type="hidden" value="{1}"/></span>


国际化转码后:
paging.banner.full=<span class\="pagelinks">[<a href\="{1}">\u9996\u9875</a>/<a href\="{2}">\u4E0A\u9875</a>] {0} [<a href\="{3}">\u4E0B\u9875</a>/<a href\="{4}">\u672B\u9875</a>]\u8DF3\u8F6C\u5230\u7B2C<input name\="tz" id\="tz" size\="1" type\="text" style\="width\: 23px" />\u9875<input type\="button" onclick\="OtherPage_Go();" value\="GO"/><input id\="hd" name\="hd" type\="hidden" value\="{1}"/></span>
paging.banner.first=<span class\="pagelinks">[\u9996\u9875/\u4E0A\u9875] {0} [<a href\="{3}">\u4E0B\u9875</a>/<a href\="{4}">\u672B\u9875</a>]\u8DF3\u8F6C\u5230\u7B2C<input name\="tz" id\="tz" size\="1" type\="text" style\="width\: 23px" />\u9875<input type\="button" onclick\="firstPage_Go();" value\="GO"/><input id\="hd" name\="hd" type\="hidden" value\="{1}"/></span>
paging.banner.last=<span class\="pagelinks">[<a href\="{1}">\u9996\u9875</a>/<a href\="{2}">\u4E0A\u9875</a>] {0} [\u4E0B\u9875/\u672B\u9875]\u8DF3\u8F6C\u5230\u7B2C<input name\="tz" id\="tz" size\="1" type\="text" style\="width\: 23px" />\u9875<input type\="button" onclick\="OtherPage_Go();" value\="GO"/><input id\="hd" name\="hd" type\="hidden" value\="{1}"/></span>



页面上的JS代码:
<script type="text/javascript">
function fucCheck(INDEX)     
{     
var i,j,strTemp;     	
strTemp="0123456789";     
for (i=0;i<INDEX.length;i++)     
{     
j=strTemp.indexOf(INDEX.charAt(i));     
if (j==-1)     
{     
//说明有字符不合法     
return false;     
}     
}     
//说明合法     
return true;     
}


           function firstPage_Go(){
				var page = document.getElementById("tz").value;
				var total = ${pages}; // 当前数据的总页数,从Action中传值过来
				if(!fucCheck(page)){
				    alert("输入数字非法,请重新输入!");
				    return false;
				}
				if(page > total){
					alert("超出了最大页数,请重新输入!");
				}else if(page < 1){
					alert("页数不能小于1!");
				}else{
				    window.location=document.getElementById("hd").value.replace("p=","p="+document.getElementById("tz").value);
				}
			}

           function OtherPage_Go(){
				var page = document.getElementById("tz").value;
				var total = ${pages};// 当前数据的总页数,从Action中传值过来
				if(!fucCheck(page)){
				    alert("输入数字非法,请重新输入!");
				    return false;
				}
				if(page > total){
					alert("超出了最大页数,请重新输入!");
				}else if(page < 1){
					alert("页数不能小于1!");
				}else{
				    window.location=document.getElementById("hd").value.replace("p=1","p="+document.getElementById("tz").value);
				}
			}
			
			function preparaSubmit(evt){
				  	var nKeyCode = window.event?event.keyCode:evt.which;
				  	if(nKeyCode==13){
				  		go2();
				    }
			}


</script>


问题:
1.如果在<input name="tz" id="tz" size="1" type="text" style="width: 23px" />里加入键盘回车响应事件,同时对输入的数字进行JS校验,如果校验不通过,且用户继续用回车键确定弹出框,因为我用“window.location”跳转新页面,则一直响应键盘回车事件。
2.每次点击“第几页”的链接,Display Tag为页面链接生成的URL都会将Struts配置文件中的包名加上,点的次数越多,URL越长,会不会出现URL过长导致不能点击?
  相关解决方案