我是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.");
}
}
但是,它不起作用,只接受任何输入。我哪里做错了? 提前谢谢!
答案 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();
}