<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required"> <javascript><![CDATA[
function validateRequired(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oRequired = new required();
for (x in oRequired) {
var field = form[oRequired[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'file' ||
field.type == 'select-one' ||
field.type == 'radio' ||
field.type == 'password') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
if (trim(value).length == 0) {
if (i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
isValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return isValid;
}
// Trim whitespace from left and right sides of s.
function trim(s) {
return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}
]]>
</javascript> </validator>其中看不懂的是
oRequired = new required(); // required是在什么地方声明的
var field = form[oRequired[x][0]]; // 什么意思?form是个数组?我对jsp语法不熟,很想请教大家的是,一个类,比如Array是在什么地方声明的,都有哪些类可以使用?是不是java中的类都可以使用(因为jsp是要编译成java的)?
还有上面的
var field = form[oRequired[x][0]];
为什么form和oRequired可以当作数据使用,field都有哪些属性,有什么介绍文档
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required"> <javascript><![CDATA[
function validateRequired(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oRequired = new required();
for (x in oRequired) {
var field = form[oRequired[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'file' ||
field.type == 'select-one' ||
field.type == 'radio' ||
field.type == 'password') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
if (trim(value).length == 0) {
if (i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
isValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return isValid;
}
// Trim whitespace from left and right sides of s.
function trim(s) {
return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}
]]>
</javascript> </validator>其中看不懂的是
oRequired = new required(); // required是在什么地方声明的
var field = form[oRequired[x][0]]; // 什么意思?form是个数组?我对jsp语法不熟,很想请教大家的是,一个类,比如Array是在什么地方声明的,都有哪些类可以使用?是不是java中的类都可以使用(因为jsp是要编译成java的)?
还有上面的
var field = form[oRequired[x][0]];
为什么form和oRequired可以当作数据使用,field都有哪些属性,有什么介绍文档
比如http://www.elook.net.cn/handbook/JavaScript/contents.htm不过那个required就不知道了,应该是struts自带的吧,不知放在什么地方
以下是根据struts1.1源码写出来的<script type="text/javascript" language="Javascript1.1">
<!-- Begin
var bCancel = false; function validateUser(form) {
if (bCancel)
return true;
else
return validateRequired(form);
} function required () {
this.aa = new Array("userId", "userIdmessage", new Function ("varName", "this.mask=/^[0-9a-zA-Z]*$/; this.minlength=1; this.maxlength=10; return this[varName];"));
this.ab = new Array("password", "passwordmessage", new Function ("varName", "this.mask=/^[0-9a-zA-Z]*$/; this.minlength=1; this.maxlength=10; return this[varName];"));
} // 这中间是validator-rules.xml中定义的javascript的源码//End -->
</script>