我有五行,firstName
,lastName
,username
,password
和passwordConfirmation
Javascript表單驗證,如果語句太多?
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
感謝@dougajmcdonald,但對於此項目,我沒有使用任何類似jQuery等的庫 – Mike