-1

我无法验证表单并停留在同一页面上。下面是我的 javascript 验证,当我收到弹出窗口时它正在工作。

function valueChecks(input){

var reqdFields = false;
var ncFields = false;
var catCheck = false;
var refCheck = false;
var dtCheck = false;
var retval = false;
reqdFields = checkRequiredFields(input) ; 
ncFields = checkNonComplianceFields(input);
catCheck = checkCat();
refCheck = checkRef();
dtCheck = subDate();
var mesgNo="0";
if (reqdFields == true){ 
    mesgNo="0";
} else { mesgNo="1";
}

if (catCheck == true){ 
    mesgNo=mesgNo+"0";
} else { mesgNo=mesgNo+"2";
}

if (refCheck == true){ 
    mesgNo=mesgNo+"0";
} else { mesgNo=mesgNo+"3";
}

if (dtCheck == true){ 
    mesgNo=mesgNo+"0";
} else { mesgNo=mesgNo+"4";
}

if (ncFields == true){
    mesgNo=mesgNo+"0";
    } else {mesgNo=mesgNo+"5";
}
if (mesgNo =="00000"){
    retval=true;
}
else if ((mesgNo =="10000")||(mesgNo =="12000")||(mesgNo =="12300")||(mesgNo =="12340")||(mesgNo =="12345")||(mesgNo =="10300")||(mesgNo =="10340")||(mesgNo =="10040")){
    retval = false;
    alert("Please check that you have filled in all the Mandatory Fields");
}
else if ((mesgNo =="02000")||(mesgNo =="02300")||(mesgNo =="02040")||(mesgNo =="02340")||(mesgNo =="02345")){
    retval = false;
}
else if ((mesgNo =="00300")||(mesgNo =="00340")||(mesgNo =="00345")){
    retval = false;
    alert ("Please enter at least one Reference Value (File Number, STT or BL Number)");
}
else if ((mesgNo =="0004")||(mesgNo =="00045")){
    retval = false;
    alert ("The Incident Date must be less than or equal today's Date");
}
else if ((mesgNo =="0005")){
    retval = false;
    alert ("Please enter at least one Non Conforming Party");
}
return retval;

}

这就是我声明我的表格的方式。

 <html:form action="/qaeditsrl" onsubmit="return valueChecks(this);" >

 <input type=submit value="Submit" name="method" >

有人可以告诉我为什么会出错吗?

4

1 回答 1

1

尝试将提交按钮更改为输入类型=按钮。删除表单上的onsubmit,并添加一个id。然后在按钮上添加 onclick 进行所有检查,如果没有发现错误,请使用 document.getElementById('formId').submit() 提交;

于 2013-01-31T15:42:57.147 回答