【发布时间】:2013-01-13 00:16:18
【问题描述】:
我有一个包含五个元素的表单,firstName、lastName、username、password 和 passwordConfirmation
var errors = [];
var errorsText = [];
function generateError(messageText, elementIdentifier) {
var messageText = messageText;
var elementIdentifier = elementIdentifier;
errors.push(elementIdentifier);
errorsText.push(messageText);
return false;
}
function validateRegistrationForm(firstName, lastName, username, password, passwordConfirmation) {
formReset();
//alert("validateRegistrationForm() has been called");
var firstName = firstName;
//alert("First Name = \'" + firstName + "\'");
var lastName = lastName;
//alert("Last Name = \'" + lastName + "\'");
var username = username;
//alert("Username = \'" + username + "\'");
var password = password;
//alert("Password = \'" + password + "\'");
var passwordConfirmation = passwordConfirmation;
//alert("Password Confirmation = \'" + passwordConfirmation + "\'");
if ( ( firstName == null ) || ( firstName == "" ) ) {
//alert("//firstname hasn't been filled out");
generateError("You must provide a First Name", "firstName");
}
if ( ( lastName == null ) || ( lastName == "" ) ) {
//lastname hasn't been filled out
generateError("You must provide a Last Name", "lastName");
}
if ( ( username == null ) || ( username == "" ) ) {
//username hasn't been filled out
generateError("You must enter a Username", "username");
}
if ( ( password == null ) || ( password == "" ) ) {
//password hasn't been filled out
generateError("You haven\'t entered a password", "password");
}
if ( ( passwordConfirmation == null ) || ( passwordConfirmation == "" ) ) {
//passwordconfirmation hasn't been filled out
generateError("You haven\'t confirmed your password", "passwordConfirmation");
}
validatePassword(password, passwordConfirmation);
}
有没有更好的方法来处理所有if statements?
【问题讨论】:
-
虽然可能稍微超出了这个问题的范围,但许多 JS 框架提供了在“模型”上定义验证方法/消息的选项以及显示对验证的响应的标准方式
-
感谢@dougajmcdonald,但对于这个项目,我没有使用任何库,如 jQuery 等
标签: javascript html forms validation