图5 客户端的验证逻辑
FormSubmitTest(problemTitle,bugDescription,buildVersion,cboProduct,
appLanguage,cboArea, cboSubArea,severity,build)
{
var iG;
var renl = "
" + "
";
iG = 0;
ResetArrowSize();
if (problemTitle.value == "" ){
document.images.item("ArrowProbTitle").width=8
iG++
}
if (buildVersion.value == -1){
document.images.item("ArrowBuildVersion").width=8
iG++
}
if (buildVersion.value == ""){
document.images.item("ArrowBuildVersion").width=8
iG++
}
if (appLanguage.value == -1){
document.images.item("ArrowAppLanguage").width=8
iG++
}
if (cboProduct.value == ""){
document.images.item("ArrowProductName").width=8
iG++
}
if (cboArea.value == ""){
document.images.item("ArrowProblemArea").width=8
iG++
}
if (cboSubArea.value == ""){
document.images.item("ArrowProblemSubArea").width=8
iG++
}
if (severity.value == -1){
document.images.item("ArrowSeverity").width=8
iG++
}
if (bugDescription.value == "Problem Description:" + renl + renl +
"Steps to reproduce:" + renl + renl + "Expected behavior:"
+ renl + renl + "Actual behavior:"+ renl + renl + renl){
document.images.item("ArrowDescription").width=8
iG++
}
if (bugDescription.value == ""){
document.images.item("ArrowDescription").width=8
iG++
}
if (iG != 0){
alert("You are missing one or more of the required items
(indicated by the red arrow) needed to submit this form.")
return false;
}
else{
if (document.form1.bugDescription.value == "")
{
// don't submit
alert("Please enter a problem description.")
return false;
}
else{
if (document.form1.bugDescription.value == "Problem
Description:
Steps to reproduce: Expected behavior: Actual
behavior:")
{
// don't submit
alert("Please enter a problem description.")
return false;
}
else{
var buildval = build.value;
var buildlen = buildval.length;
file://alert(buildlen);
if (buildlen <= 0)
{
var typ = buildVersion.type;
if (typ == "text") file://build is a text box
{
var val = buildVersion.value;
var len = val.length;
if ((isNaN(val)) || (len != 4))
{
// don't submit
alert("Please enter 'Build' using the
format 'NNNN'.")
return false;
}
else
{
// concatenate the build number with
"07.00.00."
buildVersion.value = "07.00.00." +
buildVersion.value
// submit
document.form1.method = "POST"
document.form1.action = "lamegeneral.asp"
return true;
}
}
else
{
// submit
document.form1.method = "POST"
document.form1.action = "lamegeneral.asp"
return true;
}
}
}
}
}
}
图6 在报告漏洞时选择产品的版本