【发布时间】:2013-04-21 11:34:34
【问题描述】:
我正在尝试进行 javascript 表单验证,为此我需要调用两个函数。一个用于密码,一个用于用户名(我稍后还需要调用更多)。
这是我的 JS 代码:
function validateUserName(NewUser)
{
var u = document.forms["NewUser"]["user"].value
var uLength = u.length;
var illegalChars = /\W/; // allow letters, numbers, and underscores
if (u == null || u == "")
{
alert("You left Username field empty");
return false;
}
else if (uLength <4 || uLength > 11)
{
alert("The Username must be between 4 and 11 characters");
return fasle;
}
else if (illegalChars.test(u))
{
alert("The username contains illegal characters");
return false;
}
else
{
return true;
}
}
function validatePassword(pwd, confirmPwd)
{
var p = document.forms["NewUser"]["pwd"].value
var cP = document.forms["NewUser"]["cP"].value
var pLength = p.length;
if (p == null || p == "")
{
alert("You left the password field empty");
return false;
}
else if (pLength < 6 || pLength > 20)
{
alert("Your password must be between 6 and 20 characters in length");
return false;
}
else if (p != cP)
{
alert("Th passwords do not match!");
return false;
}
}
这是我的 HTML 表单:
<form name = "NewUser" onsubmit= "return validateUserName(), return validatePassword()" action = "">
<tr>
<td>Username:</td>
<td><input type = "text" name = "user"/></td>
</tr>
<tr>
<td class = "Information"><em>Must be 4-11 characters.<br/>Only numbers, letters and underscores.</em></td>
</tr>
<tr>
<td>Password:</td>
<td><input type = "password" name = "pwd"/></td>
<tr>
<td class = "Information"><em>6-20 characters</em></td>
</tr>
<tr>
<td>Confirm Password:</td>
<td><input type = "password" name = "confirmPwd"/></td>
<tr>
<td class = "Information"><em>just in case you didn't make mistakes!</em></td>
</tr>
<input type = "submit" value = "Submit"/>
请忽略表格代码。
我应该将它们全部放在一个函数中吗?或者有没有办法一次调用两个函数?
【问题讨论】:
-
put it all in one function -
有几个功能没关系,因为它更容易维护。但是,您应该创建一个调用其他两个函数的单个函数。
-
你自己回答了这个问题。将所有功能放在一个功能中。只需调用名为 ValidateData 的常用函数并将所有内容放在一起
-
+1 丹尼B。结合功能绝对是解决问题的最糟糕的方法。
标签: javascript html forms function