【发布时间】:2012-09-16 22:29:02
【问题描述】:
我正在尝试创建一个通用的 Javascript 函数,我可以使用它来验证不同的字段值并在正确的字段旁边输出错误消息。我想创建一个高效、可重用的函数,但我是 Javascript 新手,不知道如何继续。
建议您如何更改我的验证功能以验证firstname 和lastname。
到目前为止我的代码:
function validateForm() {
var x = document.forms["myForm"]["firstname"].value;
var reg_azs = /^[^a-zA-Z\-']+$/;
var reg_oal = "!#$%^&*()+=[]\\\';,{}|\":<>?123456790";
if (x == null || x == "") {
document.getElementById("fn").innerHTML = "This fuild is required.";
return false;
} else if (reg_azs.test(firstname.value)) {
document.getElementById("fn").innerHTML = "Only alphabetic letters.";
return false;
} else {
for (var i = 0; i < x.length; i++) {
if (reg_oal.indexOf(x.charAt(i)) != -1) {
document.getElementById("fn").innerHTML = "Only alphabetic letters.";
return false;
}
}
} else {
document.getElementById("fn").innerHTML = "correct";
return true;
}
}
我的表格:
<form name="myForm" action="connection.php" method="post">
<label for='firstname'>First Name:</label>
<input type="text" id="firstname" name="firstname" onchange="return validateForm()" />
<err1 id="fn"></err1>
<br>
<label for='lastname'>Last Name:</label>
<input type="text" id="lastname" name="lastname" onchange="return validateForm()" />
<err1 id="ln"></err1>
<br>
</form>
【问题讨论】:
-
html 无效,因为标准中没有指定
err1标签。 -
检查我对这个问题的回答stackoverflow.com/questions/12434948/…,它可能有助于保持干燥。
-
“更少的代码”并不意味着“更快”。很多时候,将代码缩写到混淆的程度会使其速度变慢,当然也更难维护。
-
将某人的姓名限制为 ASCII 字母是个坏主意。除了数十亿人用中文拼写自己的名字外,全世界还有数十亿
O'Shays和O'Shanters为无法正确输入他们的名字而烦恼。这种限制通常是基本糟糕设计的标志。
标签: javascript forms function variables verify