如何在“保存”之前设置验证检查的样式

时间:2018-01-25 07:02:44

标签: javascript validation

这只是我遇到的最佳实践问题,无法找到答案。欢迎任何输入! (备份数据/研究的回复将是惊人的)

示例保存按钮

当我按下保存按钮时,我想做一些验证,名字(必须是第一个和最后一个),年龄(必须是0到125),电子邮件(有效的电子邮件地址),如果这些都是真的,我想要“保存”用户(到数据库或任何无关紧要的地方)

现在我的功能已经设置

// Global error handler for example
var errors = {};

// Save Button Function
saveButton = function(dataModel) {
  var valid = true;

  valid = validateName(valid, dataModel.name);
  valid = validateAge(valid, dataModel.age, 'extraParam');
  valid = validateEmail(valid, dataModel.email, 'secondParam', 'thirdParam');
  valid = (dataModel.red) ? validateRedUser(valid, dataModel) : valid;

  if (valid) {
    // Save user to database
  } 
  else {
    // alert to user an error has occured
    // user errors object to respond with the errors
  } 
}

我觉得将有效状态传递给每个子验证函数并不是解决这类问题的最佳方法。它有效,但可以改进吗?

编辑:子验证功能类似于:

validateName = function(valid, dataModel.name) {
  if (!dataModel.name) {
    valid = false;
    // access global error handler to save error
    errors.name = 'error in the name';
  }
  return valid;
}

1 个答案:

答案 0 :(得分:0)

使您的示例函数添加了有效的状态条件检查。

validateName = function(valid, dataModel.name) {
  if (!dataModel.name && valid) {
    valid = false;
    // access global error handler to save error
    errors.name = 'error in the name';
  }
  return valid;
}