2023年6月21日发(作者:)

javascript表单验证和button跳转我们设计⼀个表单,在本地客户端验证,如果验证不对的话,就不允许提交,⾮得全部验证完整正确才允许跳转1、javascript 代码:

JavaScript禁⽌提交表单

2、jquery代码

jQuery禁⽌提交表单

3、超连接跳转我们在超连接的时候,常常连接到⼀个jsp或者Action,⽐如:

XXX

这样做会有⼀个问题:在中,除你传递的param1和param2参数外,你⽤amter()取任何原来页⾯的表单元素都会为空,这是因为这种⽅式会产⽣新的request⽣命周期,在这个request中只会包含超连接后跟随的?param1这种参数, 因此我的建议是如果不是很简单的页⾯跳转(⽐如回登陆页⾯之类的),尽量不要⽤这种超连接⽅式。4、即传参⼜提交表单如果确实既要像上述第⼀种⽅式传参数,⼜要提交表单的话,可以采取如下⽅式:

XXX在脚本中如下处理:

function commonSubmit(url)

{

="/jsp/?"+url;

();

}

提交到Action和jsp是⼀样的原理,但要记住

中method=post不能少,否则它只提交表单⽽不传param参数了(正好和第⼀种相反:) )5、js和java变量互传在jsp中经常会遇到把js变量赋给java变量,或者将java变量赋给js变量的情况,在此将通⽤的处理⽅法⼩结如下:

java变量传给js好办,var a ="";注意要将引号""加上;js变量给java稍微复杂点,⼀般是在表单中⽤⼀个

的隐藏表单元素,然后在脚本中将js变量值赋给它:

var jsParamValue=aaaa;

=jsParamValue;

然后就可以meter("jsPrama");来取得js变量值了6、Action中request不会丢掉不知⼤家有没有注意到这个好处,Struts架构中是由⼀个ActionServlet来作为MVC的控制器⾓⾊,jsp页⾯提交后request是传到ActionServelt中的, ⽽ActionServlet将根据中的配置调⽤相应的Action的⽅法,并将从jsp中获得的request传给Action类,这样request的⽣命周期是连续的,即你在jsp中提交了表单,在Action中执⾏了⽅法,再回到jsp页⾯,⽤amter()取jsp页⾯的表单元素值会发现它还在,这对于页⾯下拉列表等选择项防⽌复位是⼀个很好实现⽅法。7、传参时参数有空格的情况 如果你提交form时带参数,⽐如="/jsp/?param1="+value1,注意如果value1中带有空格的话,你在Action中ameter("param1");取得的只是空格前的值,因此如果有这种带空格的参数在传递时,个⼈建议是将其转化为特定的字符串,value1=eAll(" ","%NULL%");然后在Action中将其转回来:amter("param1").replaceAll("%NULL%"," ");8、form-data属性如果你要⽤来上传⽂件的话,注意在⼀个表单中如果有enctype="multipart/form-data"属性的话,是不能接收除type=file外的其他表单元素类型的。 即如果你把和放在同⼀表单中,⽽该表单有enctype="multipart/form-data"的话,amter取text的值会为空, 这个问题的最简单的解决⽅法是将单独放⼀个表单,上传⽂件时只提交该表单即可。9、jsp中开模式对话框的⽅式与Swing中类似,jsp中也有模式对话框这⼀概念,你可以将⼀个jsp页⾯放到⼀个模式对话框中打开,这样在模式对话框消失前,原jsp页⾯将不可操作。特别适合⽗页⾯中要做⼀些额外的选择操作,⽽⼜没必要跳转到新的jsp页⾯的时候,

开模式对话框的⽅式参考如下:

Function open() {

If(delDialog())

{

Var returnValue = showModelDialog(“/jsp/模式窗⼝包含的jsp页⾯路径”;

help=0;status=0;center=yes;dialogWidth=100pt;dialogHeight=100pt”);

}

}

2023年6月21日发(作者:)

javascript表单验证和button跳转我们设计⼀个表单,在本地客户端验证,如果验证不对的话,就不允许提交,⾮得全部验证完整正确才允许跳转1、javascript 代码:

JavaScript禁⽌提交表单

2、jquery代码

jQuery禁⽌提交表单

3、超连接跳转我们在超连接的时候,常常连接到⼀个jsp或者Action,⽐如:

XXX

这样做会有⼀个问题:在中,除你传递的param1和param2参数外,你⽤amter()取任何原来页⾯的表单元素都会为空,这是因为这种⽅式会产⽣新的request⽣命周期,在这个request中只会包含超连接后跟随的?param1这种参数, 因此我的建议是如果不是很简单的页⾯跳转(⽐如回登陆页⾯之类的),尽量不要⽤这种超连接⽅式。4、即传参⼜提交表单如果确实既要像上述第⼀种⽅式传参数,⼜要提交表单的话,可以采取如下⽅式:

XXX在脚本中如下处理:

function commonSubmit(url)

{

="/jsp/?"+url;

();

}

提交到Action和jsp是⼀样的原理,但要记住

中method=post不能少,否则它只提交表单⽽不传param参数了(正好和第⼀种相反:) )5、js和java变量互传在jsp中经常会遇到把js变量赋给java变量,或者将java变量赋给js变量的情况,在此将通⽤的处理⽅法⼩结如下:

java变量传给js好办,var a ="";注意要将引号""加上;js变量给java稍微复杂点,⼀般是在表单中⽤⼀个

的隐藏表单元素,然后在脚本中将js变量值赋给它:

var jsParamValue=aaaa;

=jsParamValue;

然后就可以meter("jsPrama");来取得js变量值了6、Action中request不会丢掉不知⼤家有没有注意到这个好处,Struts架构中是由⼀个ActionServlet来作为MVC的控制器⾓⾊,jsp页⾯提交后request是传到ActionServelt中的, ⽽ActionServlet将根据中的配置调⽤相应的Action的⽅法,并将从jsp中获得的request传给Action类,这样request的⽣命周期是连续的,即你在jsp中提交了表单,在Action中执⾏了⽅法,再回到jsp页⾯,⽤amter()取jsp页⾯的表单元素值会发现它还在,这对于页⾯下拉列表等选择项防⽌复位是⼀个很好实现⽅法。7、传参时参数有空格的情况 如果你提交form时带参数,⽐如="/jsp/?param1="+value1,注意如果value1中带有空格的话,你在Action中ameter("param1");取得的只是空格前的值,因此如果有这种带空格的参数在传递时,个⼈建议是将其转化为特定的字符串,value1=eAll(" ","%NULL%");然后在Action中将其转回来:amter("param1").replaceAll("%NULL%"," ");8、form-data属性如果你要⽤来上传⽂件的话,注意在⼀个表单中如果有enctype="multipart/form-data"属性的话,是不能接收除type=file外的其他表单元素类型的。 即如果你把和放在同⼀表单中,⽽该表单有enctype="multipart/form-data"的话,amter取text的值会为空, 这个问题的最简单的解决⽅法是将单独放⼀个表单,上传⽂件时只提交该表单即可。9、jsp中开模式对话框的⽅式与Swing中类似,jsp中也有模式对话框这⼀概念,你可以将⼀个jsp页⾯放到⼀个模式对话框中打开,这样在模式对话框消失前,原jsp页⾯将不可操作。特别适合⽗页⾯中要做⼀些额外的选择操作,⽽⼜没必要跳转到新的jsp页⾯的时候,

开模式对话框的⽅式参考如下:

Function open() {

If(delDialog())

{

Var returnValue = showModelDialog(“/jsp/模式窗⼝包含的jsp页⾯路径”;

help=0;status=0;center=yes;dialogWidth=100pt;dialogHeight=100pt”);

}

}