fp/jsformvalidator-bundle

Javascript 对 sf[2|3|4] 表单进行验证。

安装数量: 398,456

依赖关系: 1

建议者: 0

安全性: 0

星标: 128

关注者: 14

分支: 56

开放问题: 55

语言:JavaScript

类型:symfony-bundle

1.6.1 2020-04-17 14:29 UTC

README

Build Status Total Downloads

此模块可以启用对 Symfony 4 或更高版本表单的 JavaScript 侧验证。它将表单类型约束转换为 JavaScript 验证规则。

如果你使用的是 Symfony 4.* - 你需要使用 版本 1.6.x-dev

如果你使用的是 Symfony 3.1.* - 你需要使用 版本 1.5.*

如果你使用的是 Symfony 3.0.* - 你需要使用 版本 1.4.*

如果你使用的是 Symfony 2.8.* 或 2.7.* - 你需要使用 版本 1.3.*

如果你使用的是 Symfony 2.6.* 或更低版本 - 你需要使用 版本 1.2.*

1 安装

1.1 使用 composer 下载 FpJsFormValidatorBundle

在终端运行

$ composer require "fp/jsformvalidator-bundle":"dev-master"

或者如果你想避免意外问题,最好使用确切版本。

$ composer require "fp/jsformvalidator-bundle":"v1.6.*"

1.2 启用 JavaScript 库

有三种方式初始化这个库的 JavaScript 文件。你可以在 webpack 中创建一个新的条目,或者将主文件导入到你的 JavaScript 中。

1.2.1 将 FpJsFormValidatorBundle 添加到 webpack.config.js

Encore
    ...
    .addEntry('app', './assets/js/app.js')
+   .addEntry('FpJsFormElement', './vendor/fp/jsformvalidator-bundle/Fp/JsFormValidatorBundle/Resources/public/js/FpJsFormValidatorWithJqueryInit.js')
    ...
    .configureBabel(null, {
        useBuiltIns: 'usage',
        corejs: 3,
    })
;

并在模板中包含新的条目

+   {{ encore_entry_script_tags('FpJsFormElement') }}
    {{ encore_entry_script_tags('app') }}

1.2.2 在主 JavaScript 中导入 FpJsFormValidatorBundle

  import $ from 'jquery';
+  import 'path-to-bundles/fpjsformvalidator/js/FpJsFormValidator';
+  import 'path-to-bundles/fpjsformvalidator/js/jquery.fpjsformvalidator';

1.2.3 在模板中使用初始化

{% block javascripts %}
+   {{ js_validator_config() }}
+   {{ init_js_validation() }}
{% endblock %}

1.4 添加路由

如果你使用的是 UniqueEntity 约束,那么你必须将以下部分添加到你的路由配置中:app/config/routing.yml

# ...
fp_js_form_validator:
    resource: "@FpJsFormValidatorBundle/Resources/config/routing.xml"
    prefix: /fp_js_form_validator

确保你的安全设置不会阻止这些路由。

2 使用方法

在完成前面的步骤后,JavaScript 验证将自动为所有表单启用。

  1. 禁用验证
  2. 如果你的表单位于子请求中
  3. 如果你需要单独为表单初始化 JS 验证,或者通过某些事件进行初始化,在这种情况下,你需要遵循 这些步骤 而不是 第 1.3 章

3 自定义

前言

此扩展包为每个 Symfony 表单元素查找相关的 DOM 元素,并将其附加到一个特殊对象验证器。该对象包含一系列属性和方法,这些属性和方法完全定义了相关表单元素的验证过程。其中一些属性和方法可以更改以自定义验证过程。

如果你以某种程度的定制方式渲染表单,请参阅 此说明

  1. 禁用指定字段的验证
  2. 错误显示
  3. 从闭包获取验证组
  4. 获取验证器
  5. 回调约束
  6. 选择约束。如何从回调中获取选择列表
  7. 自定义约束
  8. 自定义数据转换器
  9. 检查实体唯一性
  10. 通过JavaScript提交表单
  11. onValidate 回调
  12. 在自定义事件上运行验证
  13. 集合验证