用javascript检查表单

时间:2014-01-15 16:07:24

标签: javascript html forms submit

我是JavaScript的新手,我遇到了一个问题。我有这样的表格:

<form name="RegForm" method="get" action="formularTarget.html"
onsubmit="return validateForm()">
</form>

它使用文本输入,我想用以下脚本检查它是否正确:

function validateForm() {
     var errorMsg = "";
     var errorFlag = false;
     var errorElem = null;

     if (checkBlankString(document.RegForm.elemVorname.value)) {
             errorElem = "elemVorname";
             errorMsg += "Pflichtfeld: Bitte Vornamen eingeben.\n";
             errorFlag = true;
     }

     if (checkBlankString(document.RegForm.elemNachname.value)) {
             errorElem = "elemNachname";
             errorMsg+="Pflichtfeld: Bitte Nachnamen eingeben.\n";
             errorFlag=true;
     }

     if (isNaN(document.RegForm.elemAlter.value)) {
             errorElem = "elemAlter";
             errorMsg+="Angegebenes Alter ist keine Zahl. " +
                       "Bitte als Alter eine Zahl " +
                       "zwischen 12 und 99 eingeben.\n";
             errorFlag=true;
     }

     else {
             if (document.RegForm.elemAlter.value < 12 || aForm.elemAlter.value > 99) {
                     errorElem = "elemAlter";
                     errorMsg+="Alter ausserhalb des Wertebereichs. " +
                               "Bitte ein Alter zwischen 12 und 99 eingeben.\n";
                     errorFlag=true;
             }
     }

     if (errorFlag==true){
             document.RegForm.elements[errorElem].focus();
             document.RegForm.elements[errorElem].select();
             alert(errorMsg);
             return false;
     } else {
             alert("Ihre Eingaben sind in Ordnung! \n" +
             "Drücken Sie OK, um sich zu registrieren.");
}
}

但是,它不起作用,只接受任何输入。我哪里做错了? 提前谢谢!

2 个答案:

答案 0 :(得分:0)

function myValidate() {
var x = document.forms["myform"]["name"].value;
var y = document.forms["myform"]["country"].value;
var z = document.forms["myform"]["occupation"].value;
var a = document.forms["myform"]["status"].value;
var b = document.getElementById("nameErr");    
var c = document.getElementById("countryErr");
var d = document.getElementById("occupationErr");
var e = document.getElementById("statusErr");

if (!x || x.length==0) {
    b.innerHTML = "Name Must Be Filled Out";
    return false;
} else {
    b.innerHTML = "";
}

if (!y || y.length==0) {
    c.innerHTML = "Country Must Be Filled Out";
    return false;
} else {
    c.innerHTML = "";
}

if (!z || z.length==0) {
    d.innerHTML = "Occupation Must Be Filled Out";
    return false;
} else {
    d.innerHTML = "";
}

if (!a || a.length==0) {
    e.innerHTML = "Status Must Be Filled Out";
    return false;
} else {
    e.innerHTML = "";
}
return true;

}     

这是JavaScript

  

名称:



国家:



职业:



状态:



   

HTML

答案 1 :(得分:0)

在表单中添加一个按钮,然后删除onsubmit,如下所示:

<form name="RegForm" method="get" action="formularTarget.html">
    <input type="button" value="Submit" onclick="validateForm(this.form);" />
</form>

然后将参数添加到验证函数中,并在函数末尾触发提交:

function validateForm(form) {
     var errorMsg = "";
     var errorFlag = false;
     var errorElem = null;

     if (checkBlankString(document.RegForm.elemVorname.value)) {
             errorElem = "elemVorname";
             errorMsg += "Pflichtfeld: Bitte Vornamen eingeben.\n";
             errorFlag = true;
     }

     if (checkBlankString(document.RegForm.elemNachname.value)) {
             errorElem = "elemNachname";
             errorMsg+="Pflichtfeld: Bitte Nachnamen eingeben.\n";
             errorFlag=true;
     }

     if (isNaN(document.RegForm.elemAlter.value)) {
             errorElem = "elemAlter";
             errorMsg+="Angegebenes Alter ist keine Zahl. " +
                       "Bitte als Alter eine Zahl " +
                       "zwischen 12 und 99 eingeben.\n";
             errorFlag=true;
     }

     else {
             if (document.RegForm.elemAlter.value < 12 || aForm.elemAlter.value > 99) {
                     errorElem = "elemAlter";
                     errorMsg+="Alter ausserhalb des Wertebereichs. " +
                               "Bitte ein Alter zwischen 12 und 99 eingeben.\n";
                     errorFlag=true;
             }
     }

     if (errorFlag==true){
             document.RegForm.elements[errorElem].focus();
             document.RegForm.elements[errorElem].select();
             alert(errorMsg);
             return false;
     } else {
             alert("Ihre Eingaben sind in Ordnung! \n" +
             "Drücken Sie OK, um sich zu registrieren.");
    }
    form.submit();
}