【发布时间】:2009-09-03 12:29:34
【问题描述】:
您好,我在这段代码中遇到了一个奇怪的错误:
function validateForm(aform) {
var s="";
//check if form has validator arr
if (aform.validatorArr) {
//Iterate over Form elements
for (var i=0;i<aform.validatorArr.length;i++) {
eval("var anelem=document.forms."+aform.name+"."+aform.validatorArr[i][1]);
var pattern=getPatternByName(aform.validatorArr[i][2]);
if (aform.validatorArr[i][4]=="radio") {
var fv="";
eval("var chkArray=aform."+aform.validatorArr[i][1]+";");
for (j=0;j<chkArray.length;j++) {
if (chkArray[j].checked) {
fv=chkArray[j].value;
}
}
if (validateValue(fv,pattern)==false) {
s+=aform.validatorArr[i][3]+"\n";
}
} else {
if (validateField(anelem,pattern)==false) {
s+=aform.validatorArr[i][3]+"\n";
}
}
}
//Report errors
if (s!="") {
alert(s);
return false;
}
}
return true;
}
缺少] 在元素列表之后 217号线
这是第 217 行:
eval("var anelem=document.forms."+aform.name+"."+aform.validatorArr[i][1]);
有什么问题吗?
更新
de 函数是这样调用的:submitForm('formbuilder_form'); 与表单名称相同:
<form name="formbuilder_form" method="POST" action="processform.php" style="margin:0px">
问题已解决
在表单元素中,有人认为最好是这样:
Js 不喜欢这样。
感谢大家的帮助。
【问题讨论】:
-
顺便说一句,你不需要使用
eval:document.forms[aform.name][aform.validatorArr[i][1]]应该可以正常工作。
标签: javascript