日期:2014-05-18  浏览次数:20932 次

一个很着急的问题
我用JSP做了一个注册的页面,这个注册页面包括企业注册和用户注册,这两个注册页面的代码都是写的同一个页面里,但是在两个不同table里,我用radio来脚本控制这两个table的显示和隐藏
代码如下:
<input   type= "radio "   name= "zctype "     checked= "true "         onclick= "showTable1( 'corpt1 '); "> 企业注册 </span> &nbsp;&nbspinput   type= "radio "   name= "zctype "     onclick= "showTable1( 'user1 '); "> 用户注册

<script   language= "javascript ">
function   showTable1(obj)
{
if(obj== 'corpt1 ')
{
eval( "corpt1.style.display= ' '; ");
eval( "user1.style.display= 'none '; ");
}
else   if(obj== 'user1 ')
{
eval( "user1.style.display= ' '; ");
eval( "corpt1.style.display= 'none '; ");
}


}
</script>

现在的问题是:
当我注册一个用户的时候,我到服务端去判断时
if(username.length() <1)
{
          error_code=0;
        out.println( " <script> alert( '用户名不能为空! ');history.back(); </script> ");
}
这时候跳回去的页面却是企业注册的页面,而不是我刚才用户注册的页面,请问这个问题应该怎么解决
当时也有想过把这两个注册页面分开来写就不会出现这个问题,但老板要求这样写在同一个页面里用脚本控制。

------解决方案--------------------
因为你的页面中的 <input type= "radio " name= "zctype " checked= "true " onclick= "showTable1( 'corpt1 '); "> 企业注册的checked= "true ",所以在返回时就是企业注册页面
解决方法:你可以在以下条件里这样写:
if(username.length() <1)
{
session= "user1 ";
error_code=0;
out.println( " <script> alert( '用户名不能为空! ');history.back(); </script> ");
}

function showTable1(obj)
{
if(obj== 'corpt1 ' && session == 'corpt1 ')
{
eval( "corpt1.style.display= ' '; ");
eval( "user1.style.display= 'none '; ");
}
else if(obj== 'user1 ' && session == 'user1 ' )
{
eval( "user1.style.display= ' '; ");
eval( "corpt1.style.display= 'none '; ");
}


}