自定义jQuery表单验证,挂钩到其他检查

时间:2012-05-15 14:28:54

标签: jquery validation

我正在使用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>

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

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

您可以在此处查看此示例:http://viralpatel.net/blogs/2009/01/calling-javascript-function-from-string.html

就个人而言,这是我将使用jQuery验证的地方,因为已经构建了配置级别,并且似乎有一些重新发明轮子继续你的方法。你想做什么jQuery验证不做?