分享
 
 
 

用JSP生成JavaScript代码实现表单校验

王朝html/css/js·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

主程序是名为 ErrorCheck.java ,有了这个 ErrorCheck 的 Bean,我们就再也不用为了表单校验去写那一大堆烦人的 JavaScript 代码了。ErrorCheck 类已帮我们生成了几乎所有你将会用到的校验方法,如是否为数字,长度的校验,是否为合法email等,你只需在 jsp 页面里调用相应的函数就可以了。

目前一共有七个函数:

一 检测是否为数字

//输入输入框名和错误提示信息

numericCheck(String inputName,String errorMsg);

二 检测email是否合法

//输入输入框名和错误提示信息

emailCheck(String inputName,String errorMsg);

三 检测电话号码是否合法

//输入输入框名和错误提示信息

telCheck(String inputName,String errorMsg);

四 检测字串长度是否在规定范围那内

//输入输入框名,错误提示信息,最小长度,最大长度

lengthCheck(String inputName,String errorMsg,int min,int max);

五 检测字串中是否不含禁止的字串

//输入输入框名,错误提示信息,禁止字串

denyStrCheck(String inputName,String errorMsg,String str);

六 检测字串中是否含给定字串

//输入输入框名,错误提示信息,指定字串

stringCheck(String inputName,String errorMsg,String str);

七 检测日期格式是否为"yyyy-mm-dd"

//输入输入框名和错误提示信息

dateCheck(String inputName,String errorMsg);

只要调用一下这个bean,然后用setFromName()设定你的表单名,再调用以上函数,最后 out.println(yourID.ErrorCheckScript()),就输出了一段 JavaScript 代码了,当然了,别忘了这个<form name=myForm onsubmit="return errorCheck();"

ok,just enjoy it,今天太累,不想多少,有任何意见请写信给我或在我主页上留言。

注:我调试 errorcheck.jsp 的时候因服务器的问题不知为何不能用 usebean,setProperty 的方法,只好 new 了一下,我想你们是应该可以用useBean和setProperty的,自己改一下吧。

===================================== errorcheck.jsp =====================================

<%@ page language="java"import="dbclass.*"%

<%@ page contentType="text/html;charset=gb2312"%

<jsp:useBean id="cc"scope="page"class="dbclass.ErrorCheck"/

<%

ErrorCheck ec = new ErrorCheck();

ec.setFormName("myForm");

ec.numericCheck("number","The Number you input is invalid!");

ec.emailCheck("email","The Email you input is invalid!");

ec.telCheck("tel","The telephone you input is invalid!");

ec.lengthCheck("strlen","The string you input in the fourth field in not between 6-8",6,8);

ec.denyStrCheck("nojeru","The fifith field must not contain ''jeru''","jeru");

ec.stringCheck("jeru","The sixth field must not null and contian ''jeru''","jeru");

ec.dateCheck("date","The date you input is invalid,should be yyyy-mm-dd");

out.println(ec.ErrorCheckScript());

%

<html

<body style="font-size:9pt;font-family:Arial;"

<h1Errocheck Test</h1

<hr

<form name=myForm onsubmit="return errorCheck();"

input a number:<br

<input type="text"name="number"<p

input a emial:<br

<input type="text"name="email"<p

input a telephone:<br

<input type="text"name="tel"<p

input a string (length should between 6-8):<br

<input type="text"name="strlen"<p

input a string (shoulde not contain"jeru"):<br

<input type="text"name="nojeru"<p

input a string (must contain"jeru"):<br

<input type="text"name="jeru"<p

input a date (yyyy-mm-dd):<br

<input type="text"name="date"<p

<br<input type="submit"name="submit"value="go"

</form

</body

</html

===================================== ErrorCheck.java =====================================

package dbclass;

/**

* ErrorCheck v 1.0

*

* 这个类是用来在客户端生成 JavaScript 代码来校验表单的

* 原是版本是同事 Macro 用 PHP 写的,我感觉十分好用,再也

* 不用再为那些表单区写烦人的 javascript 代码拉,感谢他!

* 这次我用 Java 改写,封装成一个类,并修复了少许的 bug,加

* 多了一条校验的功能,它的扩展性很好,以后可能会继续完善。

*

* Mender :

*

Jeru Liu

* Homepage :

*

http://www.cyberlabs.com/~jeru/

* Email: jeru@163.net

*

*/

import java.io.*;

public class ErrorCheck

{

/* public: the javascript string */

String errorCheckStr;

/* public: the form name you used */

public String formName;

public void setFormName(String formName) {

this.formName = formName;

}

/****************************************************************************

public: constructor functions

*

构造函数

\***************************************************************************/

public ErrorCheck()

{

this.errorCheckStr =

"<script ID=clientEventHandlersJS language=javascript"+"\n"+

"<!--"+"\n";

this.neededFunction();

// load the needed functions

this.errorCheckStr +=

"function errorCheck() {"+"\n";

}

/****************************************************************************

public: export javascript script

*

输出 JAVASCRIPT 脚本

\***************************************************************************/

public String ErrorCheckScript()

{

this.errorCheckStr +=

"}"+"\n"+

"--"+"\n"+

"</script"+"\n";

return this.errorCheckStr;

}

/****************************************************************************

public: check the numeric

*

检查录入框值是否是数字

\***************************************************************************/

public void numericCheck(String inputName, String errorMsg)

{

this.errorCheckStr +=

"

if(fucCheckNUM(document."+formName+"."+inputName+".value) == 0) {"+"\n"+

"

alert(\""+errorMsg+".\");"+"\n"+

"

document."+formName+"."+inputName+".focus();"+"\n"+

"

return(false);"+"\n"+

"

}"+"\n\n";

}

/****************************************************************************

public: check the length

*

检查录入框值的长度

\***************************************************************************/

public void lengthCheck(String inputName, String errorMsg, int MinLength, int MaxLength) {

this.errorCheckStr +=

"

if(fucCheckLength(document."+formName+"."+inputName+".value)<"+MinLength+"||"+"\n"+

"

fucCheckLength(document."+formName+"."+inputName+".value)"+MaxLength+") {"+"\n"+

"

alert(\""+errorMsg+".\");"+"\n"+

"

document."+formName+"."+inputName+".focus();"+"\n"+

"

return(false);"+"\n"+

"

}"+"\n\n";

}

/****************************************************************************

public: check the email

*

检查录入框值是否是正确的EMAIL格式

\***************************************************************************/

public void emailCheck(String inputName, String errorMsg)

{

this.errorCheckStr +=

"

if(chkemail(document."+formName+"."+inputName+".val

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有