0

我正在使用 jQuery 创建自己的验证器(不使用 jQuery 自己的验证器),我想让一个验证器在许多不同的表单上工作而不更改代码。

因此,我当前的验证器必须提交并检查字段。所以它会处理所有正常情况。如果表单不包含已验证的字段之一,它会忽略该字段。

它工作得很好,除了极少数情况下表单有一个额外的字段会有一些独特的验证,我希望能够将它添加到 PHP 文件本身,而不是我的标准验证器所在的 JS 文件。

扩展我的验证器以添加自定义验证检查的最佳方法是什么? 我需要集成它,因为我希望首先收集所有验证错误,然后输出一个包含所有错误的警报框,包括来自我的标准验证器和每个页面上分别添加的自定义扩展验证。

对于某些上下文,我包含了一些代码片段,但主要是伪代码:

myvalidator.js:

$('form[data-validator=custom]').live('submit', function(e) {
  // Then checks if the field exists and validates
  $('[data-validate]').each(function() {
        // Check each field that has data-validate="email" for example
  });

  // If there are errors, add error message to one variable
  // At the end of the validation, display one alert with all the collected errors
  if(errors > 0) {
        alert(error_string);
        return false;
  }
}

form9312.html

<form data-validator="custom">
  <input type="text" name="email" data-validate="email" /> <!-- standard validation -->
  <input type="text" name="blarg" data-validate-custom="blarg" /> <!-- needs custom -->
  <input type="submit" />
</form>
<script type="text/javascript">
  // Add custom validation here
  // How?
  function validate_blarg() {
        // If it passes validation, return true;
        // If it fails, return an error message: "Blarg must be 5 characters long."
  }
</script>

谢谢你尽你所能的帮助。

4

1 回答 1

0

从概念上讲,您可以拥有一个带有自定义验证方法名称的 data-method 属性。

你可以在这里看到一个例子:http: //viralpatel.net/blogs/2009/01/calling-javascript-function-from-string.html

就个人而言,这是我将使用 jQuery validate 的地方,因为该级别的配置已经构建,并且您的方法似乎正在重新发明轮子。您希望 jQuery 验证不做的事情是什么?

于 2012-05-15T14:41:22.693 回答