JavaScript的一些属性只有在struts标签里才有效 比如document.(struts配置文件中的Form).value就只能使用struts的<.html:form>标签。
1. form文本域的通用校验函数
(1)函数调用方法:< form οnsubmit="return dovalidate()">
function dovalidate(){
fm=document.forms[0]; //只检测一个form,如果是多个可以改变判断条件
for(i=0;i<fm.length;i++){
//检测判断条件,根据类型不同可以修改
if(fm[i].tagName.toUpperCase()=="INPUT" &&fm[i].type.toUpperCase()=="TEXT")
if(fm[i].value="/blog/="") {
str_warn1=fm[i].title+"不能为空!";
alert(str_warn1);
fm[i].focus();
return false;
}
}
}
return true;
}
(2)只获取表单域要验证的项
//如果工具已经被领用,还未归还,则不能再分配给别人
var userTypeNameObj = document.getElementsByName("userTypeName"); //每一行的使用者类型
var userIdObj = document.getElementsByName("userId"); //每一行的使用者
var toolObj= document.getElementsByName("toolIdAry"); //每一行的单选框,其值为form中的id
for (i=0;i<toolObj.length;i++){
var userTypeName = userTypeNameObj[i].value;
var userId=userIdObj[i].value;
var tool = toolObj[i].value;
if (tool==confIds && (userTypeName!="" ||userId!="" )){
alert("此工具正在被使用,您无法领用!");
return false;
}
}
2.表单内字符串长度验证
<script>
function test() {
if(document.a.b.value.length>50){
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a οnsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>
3.表单只能为数字和"_"
(1)<script language="javascript">
<!--
function isNumber(String){
var Letters = "1234567890-"; //可以自己增加可输入值
var i;
var c;
if(String.charAt(0)=='-') return false;
if(String.charAt(String.length -1) =='-') return false;
for(i = 0;i<String.length;i++){
c = String.charAt(i);
if(Letters.indexOf(c)<0)
return false;
}
return true;
}
function CheckForm(){
if(!isNumber(document.form.TEL.value)) {
alert("您的电话号码不合法!");
document.form.TEL.focus();
return false;
}
return true;
}
-->
</script>
(2)判断用户名是否为数字字母下滑线
function notchinese(str){
var reg=/[^A-Za-z0-9_]/g
if (reg.test(str)){
return (false);
}else{
return(true); }
}
(3)是否为数字
【1】function isNumber(name) {
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charAt(i) < "0" || name.charAt(i) > "9")
return false;
}
return true;
}
【2】检查一段字符串是否全由数字组成
<script language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>
【3】数字格式验证
function fucCheckNUM(NUM) {
var i,j,strTemp;
strTemp="0123456789";
if ( NUM.length== 0) return 0
for (i=0;i<NUM.length;i++) {
j=strTemp.indexOf(NUM.charAt(i));
if (j==-1) //说明有字符不是数字
return 0;
}
return 1; //说明是数字
}
4.限定表单项不能输入的字符
function contain(str,charset) { // 字符串包含测试函数
var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}
function CheckForm(){
if ((contain(document.form.NAME.value, "%/(/)><"))){
alert("输入了非法字符");
document.form.NAME.focus();
return false;
}
return true;
}
5.文本框readonly属性
<html:text property="mk_zyscfbBean.shry" styleClass="Button3" styleId="shry" readonly="true"/>
现在要点击一个按钮,在javascript函数中将这个组件的readonly值改成false。首先尝试用document.forms[0].shry.readonly=false这个语句直接将readonly赋为false,以为可以实现,结果没有任何反应。用alert(document.forms[0].shry.readonly)打印这个属性,显示undefined,说明javascript找不到这个属性。
后来通过查找javascript函数才发现有一个方法getElementById(),于是使用document.getElementById("shry").readOnly=false;来给它赋值,问题解决!!