inputContainer.prototype.IsValidate = function () { var j = 0; for (i = 0; i < this.inputs.length; ++i) { if (!this.inputs[i].IsValidate()) { this.ErrorsMsg[j] = this.inputs[i].getErrMsg(); ++j; this.Validate = false; } } return this.Validate; };
inputContainer.prototype.getErrMsg = function() { var Message = ""; for (i = 0; i < this.ErrorsMsg.length; ++i) { if (this.ErrorsMsg[i] == null) { break; }
Message = Message + "\n" + this.ErrorsMsg[i]; } alert(Message); }; function loading() { alert("loading"); } function test() { var ve1 = new ValidateElement("text1", document.forms[0].text1.value, "IsNull", 0); var ve2 = new ValidateElement("text2", document.forms[0].text2.value, "DateTime", 0); var container = new inputContainer(2); container.Add(ve1); container.Add(ve2); if (!container.IsValidate()) container.getErrMsg(); } </script> //页面代码 <body onload="loading();"> <form id="Form1" method="post" runat="server"> <INPUT id="text1" style="Z-INDEX: 101; LEFT: 112px; POSITION: absolute; TOP: 168px" type="text"><INPUT id="text2" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 216px" type="text"><INPUT style="Z-INDEX: 103; LEFT: 144px; POSITION: absolute; TOP: 272px" type="button" value="Button" onclick="test()"> </form> </body>
<script language="javascript">
function ValidateElement(id, value, type, regexp)
{
this.ID = id;
this.Value = value;
this.Type = type;
this.Regexp = regexp;
this.Validate = true;
this.errorMessage;
}
ValidateElement.prototype.getErrMsg = function(){return this.errorMessage;};
ValidateElement.prototype.IsValidate = function()
{
var Result;
var message;
try
{
switch (this.Type)
{
case "DateTime":
var date = /(\d\d\d\d)-(\d{0,1}\d)-(\d{0,3}\d)/;
Result = this.Value.match(date);
if (Result == null)
{
message = this.ID + "不是有效的日期格式!";
throw ex;
}
break;
case "Number":
var Tmp = this.Value;
if (Tmp.length != this.Regexp)
{
message = this.ID + "输入的位数不对!";
throw ex;
}
break;
case "IsNull":
if (this.Value == "")
{
message = this.ID + "不允许为空!";
throw ex;
}
break;
default:
result = this.value.match(this.regexp);
if (result == null)
{
message = this.ID + "的格式不对!";
throw ex;
}
break;
}
}
catch (ex)
{
this.errorMessage = message;
this.Validate = false;
}
return this.Validate;
};
//控件容器class
function inputContainer(count)
{
this.inputs = new Array(count);
this.ErrorsMsg = new Array(count);
this.Validate = true;
this.index = 0;
}
inputContainer.prototype.Add = function (ve)
{
this.inputs[this.index] = ve;
this.index ++;
};
inputContainer.prototype.IsValidate = function ()
{
var j = 0;
for (i = 0; i < this.inputs.length; ++i)
{
if (!this.inputs[i].IsValidate())
{
this.ErrorsMsg[j] = this.inputs[i].getErrMsg();
++j;
this.Validate = false;
}
}
return this.Validate;
};
inputContainer.prototype.getErrMsg = function()
{
var Message = "";
for (i = 0; i < this.ErrorsMsg.length; ++i)
{
if (this.ErrorsMsg[i] == null)
{
break;
}
Message = Message + "\n" + this.ErrorsMsg[i];
}
alert(Message);
};
function loading()
{
alert("loading");
}
function test()
{
var ve1 = new ValidateElement("text1", document.forms[0].text1.value, "IsNull", 0);
var ve2 = new ValidateElement("text2", document.forms[0].text2.value, "DateTime", 0);
var container = new inputContainer(2);
container.Add(ve1);
container.Add(ve2);
if (!container.IsValidate())
container.getErrMsg();
}
</script>
//页面代码
<body onload="loading();">
<form id="Form1" method="post" runat="server">
<INPUT id="text1" style="Z-INDEX: 101; LEFT: 112px; POSITION: absolute; TOP: 168px" type="text"><INPUT id="text2" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 216px" type="text"><INPUT style="Z-INDEX: 103; LEFT: 144px; POSITION: absolute; TOP: 272px" type="button"
value="Button" onclick="test()">
</form>
</body>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">jsp
<%@ page language="java" contentType="text/html; charset=gb2312"%>
还是不行,js文件中的输出的中文还是乱码,还有我举个例子:我写了4个javascript方法,2个放在js文件中,另外2个放在页面中,那么放在页面的方法就无法执行。