var valiHelpler = new ValidationHelper();// 验证帮助类 function isEmpty(str) { return (str.replace(/^\s+/, "") == null || str.replace(/^\s+/, "").length == 0); } function isNumber(v) { return (!isNaN(v) && !/^\s+$/.test(v)); } // 删除左右两端的空格 function ltrim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); } function isDigits(v) { return !/[^\d]/.test(v); } function isRegTime(v) { return !/[^\d\-,-,]/.test(v); } function isAlpha(v) { return /^([a-zA-z_]{1})([\w]*)+$/.test(v) } function isAlphaNumber(v) { return !/\W/.test(v) } function isDate(v) { var test = new Date(v); 2007 - 7 - 4 return !isNaN(test); } function isEmail(v) { if (v == "") { return true; } return /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v); } function isUrl(v) { return /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i .test(v) } function isDateAu(v) { var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/; if (!regex.test(v)) return false; var d = new Date(v.replace(regex, '$2/$1/$3')); return (parseInt(RegExp.$2, 10) == (1 + d.getMonth())) && (parseInt(RegExp.$1, 10) == d.getDate()) && (parseInt(RegExp.$3, 10) == d.getFullYear()); } function isCurrencyDollar(v) { // [$]1[##][,###]+[.##] // [$]1###+[.##] // [$]0.## // [$].## return /^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/ .test(v) } function eluEquals(v, elmId) { var p = $$(elmId); return v == p.value; } function isDateCn(v) { var regex = /^(\d{4})-(\d{2})-(\d{2})$/; if (!regex.test(v)) return false; var d = new Date(v.replace(regex, '$1/$2/$3')); return (parseInt(RegExp.$2, 10) == (1 + d.getMonth())) && (parseInt(RegExp.$3, 10) == d.getDate()) && (parseInt(RegExp.$1, 10) == d.getFullYear()); } function isInteger(v) { if(v == "") { return true; } return (/^[-+]?[\d]+$/.test(v)); } function isChinese(v) { if(v == "") { return true; } return (/^[\u4e00-\u9fa5]+$/.test(v)); } function isIp(v) { return (/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ .test(v)); } function isZip(v) { return (/^[0-9]\d{5}$/.test(v)); } function isPhone(v) { if (v == "") { return true; } return /[0-9]{7,}$/.test(v); } function isMobilePhone(v) { if(v == "") { return true; } return (/(^0?[1][35][0-9]{9}$)/.test(v)); } function lengthMin(v, args) { return v.length >= parseInt(args[0]); } function lengthMax(v, args) { return v.length <= parseInt(args[0]); } function restrictLength(v, args) { if (isEmpty(v)) { return true; } return v.length == parseInt(args[0]); } function numberMax(v, args) { return parseFloat(v) <= parseFloat(args[0]); } function numberMin(v, args) { return parseFloat(v) >= parseFloat(args[0]); } var rulesSource = [['required', "isEmpty", "不能为空,请输入正确的数据", 1], ['validate-number', "isNumber", "请填写整数", 1], ['validate-regtime', "isRegTime", "请填写正确的时间范围", 1], ['validate-alpha', "isAlpha", "请填写开头为字母", 1], ['validate-digits', "isDigits", "数字格式错误,请输入数字", 1], ['validate-date', "isDate", "日期格式错误", 1], ['validate-email', "isEmail", "邮件格式错误", 1], ['validate-url', "isUrl", "网址格式错误,请重新输入", 1], ['validate-integer', "isInteger", "请输入整数", 1], ['validate-chinese', "isChinese", "请输入中文信息", 1], ['validate-ip', "isIp", "IP地址格式错误,请输入正确的IP地址", 1], ['validate-zip', "isZip", "邮政编码格式错误,请输入正确的邮政编码", 1], ['validate-phone', "isPhone", "电话号码格式错误,请输入正确的电话号码", 1], ['validate-mobile-phone', "isMobilePhone", "手机号码格式错误,请输入正确的手机号码", 1], ['length-min', "lengthMin", "长度不能小于%s", 2], ['length-max', "lengthMax", "长度不能大于%s", 2], ['length-restrict', "restrictLength", "长度必须是%s位", 2], ['number-min', "numberMin", "数字不能小于%s", 2], ['number-max', "numberMax", "数字不能大于%s", 2], ['elu-equals', "eluEquals", "两次输入值不一致", 3]]; function ValidationHelper() { this.getRule = function(className) { var ruleNameResult = getRuleName(className); return rulesSource[ruleNameResult]; } this.classNameToArray = function(className) { return className.split(' '); } this.getRuleType = function(className) { var ruleNameResult; for (var ruleName in rulesSource) { if (className.indexOf(rulesSource[ruleName][0]) >= 0) { ruleNameResult = rulesSource[ruleName][3] break; } } return ruleNameResult; } this.getRuleName = function(className) { var ruleNameResult; for (var ruleName in rulesSource) { if (className == rulesSource[ruleName][0]) { ruleNameResult = rulesSource[ruleName][1]; break; } if (className != rulesSource[ruleName][0] && className.indexOf(rulesSource[ruleName][0]) == 0) { ruleNameResult = new Array(); ruleNameResult[0] = rulesSource[ruleName][1]; ruleNameResult[1] = className.split(":")[1]; break; } } return ruleNameResult; } this.getRuleErrorMessage = function(className) { var ruleNameResult; for (var ruleName in rulesSource) { if (className.indexOf(rulesSource[ruleName][0]) >= 0) { ruleNameResult = rulesSource[ruleName][2]; break; } } return ruleNameResult; } this.validate = function(v, className, dis) { if (!dis) { dis = ""; } var validateResult = true; var array = valiHelpler.classNameToArray(className); for (var i = 0; i < array.length; i++) { var ruleName = valiHelpler.getRuleName(array[i]); if (ruleName) { if (valiHelpler.getRuleType(array[i]) == 1) { if (array[i] == "required") { if (eval(ruleName + "('" + v + "')")) { validateResult = false; alert(dis + valiHelpler.getRuleErrorMessage(array[i])); glableObject.focus(); validateResult = false; break; } } else if (!eval(ruleName + "('" + v + "')")) { validateResult = false; alert(dis + valiHelpler.getRuleErrorMessage(array[i])); glableObject.focus(); validateResult = false; break; } } else if (valiHelpler.getRuleType(array[i]) == 2) { if (!eval(ruleName[0] + "('" + v + "',[" + ruleName[1] + "])")) { alert(dis + valiHelpler.getRuleErrorMessage(array[i]) .replace("%s", ruleName[1])); glableObject.focus(); validateResult = false; break; } } else if (valiHelpler.getRuleType(array[i]) == 3) { if (!eval(ruleName[0] + "('" + v + "',['" + ruleName[1] + "'])")) { alert(dis + valiHelpler.getRuleErrorMessage(array[i])); glableObject.focus(); validateResult = false; break; } } } } return validateResult; } } function frmValid(frm) { for (var i = 0; i < frm.length; i++) { glableObject = frm.elements[i]; glableObjectDis = glableObject.getAttribute("dis"); var value = frm.elements[i].value; value=value.replace(/\r\n/gi, ""); // 格式验证 if (!valiHelpler.validate(value, glableObject.className, glableObjectDis)) { glableObjectDis = ""; return false; } } return true; } function frmValid1(frm) { var isOK=frmValid(frm); return isOK; }
//jsp页面先导入上面的js
里面的每个class=“”和dis=""写验证的:dis指提示的内容,class指需要的验证
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="jstl_c" %>
<%@ taglib prefix="bean" uri="struts-bean" %>
<%@ taglib prefix="ncss" uri="ncss" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="${basePath}" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> </title>
<link href="css/main.css" rel="stylesheet" type="text/css" />
<link href="js/myDatepicker/skin/WdatePicker.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="aduit/js/add.js"></script>
<script type="text/javascript" src="aduit/js/validation.js"></script>
<script type="text/javascript">
function onb(){
$.ajax({
dataType: "json",
type: "post",
data: "fileId="+$("#fileId").val(),
cache: false,
url: "audit/auditfileinfoaction.do?m=findByFileName",
error: function(){
alert('加载数据出错...');
return false;
},
success: function(data){
if (data != null && data.num >0) {
$("#win").show();
return false;
}
else {
$("#win").hide();
}
}
});
}
function check_value(){
if(document.Forms.fileType.value=="012"){
$("#picDiv").show();
$("#txtDiv").show();
$("#videoDiv").show();
$("#audioDiv").show();
}
if(document.Forms.fileType.value=="014"){
$("#picDiv").show();
$("#txtDiv").show();
$("#videoDiv").show();
$("#audioDiv").show();
}
if(document.Forms.fileType.value=="010"){
$("#picDiv").show();
$("#txtDiv").hide();
$("#videoDiv").hide();
$("#audioDiv").hide();
}
if(document.Forms.fileType.value=="011"){
$("#picDiv").hide();
$("#txtDiv").show();
$("#videoDiv").hide();
$("#audioDiv").hide();
}
if(document.Forms.fileType.value=="000"){
$("#picDiv").hide();
$("#txtDiv").hide();
$("#videoDiv").show();
$("#audioDiv").hide();
}
if(document.Forms.fileType.value=="001"){
$("#picDiv").hide();
$("#txtDiv").hide();
$("#videoDiv").hide();
$("#audioDiv").show();
}
}
</script>
</head>
<body>
<div id="main">
<div id="main_frame">
<div class="m_lt"></div><div class="m_rt"></div><div class="m_lb"></div><div class="m_rb"></div>
<h2><span>增加审核</span></h2>
<div class="form_box">
<div class="f_lt"></div><div class="f_rt"></div><div class="f_lb"></div><div class="f_rb"></div>
<form name="Forms" method="post" action="audit/auditfileinfoaction.do?m=insert" enctype="multipart/form-data" οnsubmit="if(!frmValid1(this)){return false;}">
<table width="100%" border="0" class="form_table">
<tr>
<th scope="row">文件ID:</th>
<td><input type="text" name="fileId" id="fileId" value="" class="required" dis="文件ID" οnblur="onb();"/><span class="red_style">*</span>
<div id="win" style="display:none"><font color="red">* 文件ID已存在,请重新输入</font></div>
</td>
<th scope="row">文件类型:</th>
<td>
<select name="fileType" id="fileType" class="required" dis="文件类型" οnchange="check_value();">
<option value="">全部</option>
<option value="012">压缩文件</option>
<option value="014">文件夹</option>
<option value="010">图片</option>
<option value="011">文字</option>
<option value="000">视频</option>
<option value="001">音频</option>
</select> <span class="red_style">*</span>
</td>
</tr>
<tr>
<th scope="row">文件名称:</th>
<td><input type="text" name="fileName" id="fileName" class="required" value="" dis="文件名称"/><span class="red_style">*</span>
</td>
<th scope="row">采集时间:</th>
<td><input type="text" name="acquisitionTime" id="acquisitionTime" class="required" dis="采集时间" value="" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/><span class="red_style">*</span> </td>
</tr>
<tr>
<th scope="row">外部系统局点:</th>
<td><input type="text" name="systemArea" id="systemArea" class="required" dis="外部系统局点" value=""/><span class="red_style">*</span></td>
<th scope="row">外部系统类型:</th>
<td>
<select name="systemType" id="systemType" >
<option value="1">p2pcache</option>
</select>
</tr>
<tr>
<th scope="row">协议类型:</th>
<td>
<select name="proto" id="proto" class="required" dis="协议类型">
<option value="">
所有
</option>
<option value="0000">
BT
</option>
<option value="0010">
eMule
</option>
<option value="0020">
PPStream
</option>
<option value="0030">
Thunder
</option>
<option value="0040">
FlashGet
</option>
<option value="0050">
QQDowload
</option>
<option value="0060">
PPLive
</option>
<option value="0070">
QQLive
</option>
<option value="0080">
QVOD
</option>
<option value="0090">
UUSee
</option>
<option value="0100">
风行
</option>
</select> <span class="red_style">*</span>
</td>
<th scope="row">ftp创建索引时间:</th>
<td><input type="text" name="createAt" id="createAt" class="required" dis="ftp创建索引时间" value="" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"/><span class="red_style">*</span> </td>
</tr>
<tr>
<th scope="row">敏感等级:</th>
<td>
<select name="harmLevel" id="harmLevel" >
<option value=""> </option>
<option value="0">正常</option>
</select>
</td>
<th scope="row">RAR文件母文件本地路径:</th>
<td><input type="text" name="fileRarPath" id="fileRarPath" value=""/></td>
</tr>
<tr>
<th scope="row">下载到本地文件存取路径:</th>
<td><input type="text" name="fileLocalPath" id="fileLocalPath" class="required" dis="下载到本地文件存取路径" value=""/><span class="red_style">*</span> </td>
<th scope="row">下载到本地源文件存取路径:</th>
<td><input type="text" name="fileFtpPath" id="fileFtpPath" class="required" dis="下载到本地源文件存取路径" value=""/><span class="red_style">*</span> </td>
</tr>
<tr>
<th scope="row">文件大小:</th>
<td><input type="text" name="fileSize" id="fileSize" class="required" dis="文件大小" value=""/><span class="red_style">*</span>
<input type="hidden" name="fileHeat" id="fileHeat" value="0"/>
</td>
</tr>
</table>
<input type="hidden" name="fileNameManual" id="fileNameManual" value="0" />
<div id="picDiv" style="display: none">
图片违规:
<input type="text" name="picManualConform" id="picManualConform" value="0" οnkeyup="keydownpic();"/>
<div id="pic"></div>
</div>
<div id="txtDiv" style="display: none">
文字违规:
<input type="text" name="textManualConform" id="textManualConform" value="0" οnkeyup="keydowntxt();"/>
<div id="txt"></div>
</div>
<div id="videoDiv" style="display: none">
视频违规:
<input type="text" name="videoManualConform" id="videoManualConform" value="0" οnkeyup="keydownvideo();"/>
<div id="video"></div>
</div>
<div id="audioDiv" style="display: none">
音频违规:
<input type="text" name="audioManualConform" id="audioManualConform" value="0" οnkeyup="keydownaudio();"/>
<div id="audio"></div>
</div>
<table width="100%" border="0" class="form_table">
<tr>
<td colspan="4" scope="row" class="form_footer" align="center">
<input type="submit" name="view_simg" id="view_simg" value="提交" class="form_submit"/>
<input type="button" name="view_simg" id="view_simg" value="返回" class="form_submit" οnclick="javascript:history.back(-1);"/>
</td>
</tr>
</table>
</form>
</div>
</div>
</div>
<script type="text/javascript" src="js/myDatepicker/WdatePicker.js"></script>
</body>
</html>