fp / jsformvalidator-bundle
Javascript 对 sf[2|3|4] 表单进行验证。
1.6.1
2020-04-17 14:29 UTC
Requires
- php: >=5.5.9
- symfony/form: ^2.7|^3.0|^4.0
- symfony/validator: ^2.7|^3.0|^4.0
Requires (Dev)
- php: ^7.1.3
- ext-pdo_sqlite: *
- erusev/parsedown: ^1.6
- sensio/framework-extra-bundle: ^5.1
- sensiolabs/security-checker: ^5.0
- symfony/asset: *
- symfony/console: *
- symfony/dotenv: *
- symfony/expression-language: *
- symfony/flex: ^1.1
- symfony/framework-bundle: *
- symfony/intl: *
- symfony/security-bundle: *
- symfony/translation: *
- symfony/twig-bundle: *
- symfony/webpack-encore-bundle: ^1.4
- symfony/yaml: *
- tgalopin/html-sanitizer-bundle: ^1.1
- twig/extensions: ^1.5
- twig/twig: ^2.6
Suggests
- symfony/symfony: For using as a Symfony Bundle and for using a default ajax validation
README
此模块可以启用对 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 验证将自动为所有表单启用。
- 禁用验证
- 如果你的表单位于子请求中
- 如果你需要单独为表单初始化 JS 验证,或者通过某些事件进行初始化,在这种情况下,你需要遵循 这些步骤 而不是 第 1.3 章
3 自定义
前言
此扩展包为每个 Symfony 表单元素查找相关的 DOM 元素,并将其附加到一个特殊对象验证器。该对象包含一系列属性和方法,这些属性和方法完全定义了相关表单元素的验证过程。其中一些属性和方法可以更改以自定义验证过程。
如果你以某种程度的定制方式渲染表单,请参阅 此说明。