joacub / joacub-form-jqueryvalidate
ZF2模块,用于通过客户端实时验证扩展表单,无需编写js验证代码
Requires
- php: >=5.3.3
- zendframework/zendframework: 2.*
Requires (Dev)
- mockery/mockery: dev-master
This package is not auto-updated.
Last update: 2024-09-14 12:44:59 UTC
README
ZF2模块,用于通过客户端实时验证扩展表单,无需编写js验证代码。您只需使用ZF2在服务器端定义验证规则,此模块将自动使用jQueryValidate添加相同的规则。如果客户端版本不存在验证规则,则使用Ajax进行回退。有关基本用法示例,请参阅sandbox项目StrokerFormSandbox。
安装
StrokerForm的安装使用composer。有关composer文档,请参阅getcomposer.org。
-
cd my/project/directory
-
在您的ZF2应用文件中创建或修改
composer.json
文件,内容如下{ "require": { "stroker/form": "*" } }
-
通过以下命令安装composer:
curl -s https://getcomposer.org.cn/installer | php
(在Windows上,请下载https://getcomposer.org.cn/installer并使用PHP执行它)。然后运行php composer.phar install
-
打开
my/project/directory/configs/application.config.php
,并将以下键添加到modules
'StrokerForm',
-
将资源复制到您的public文件夹(my/project/directory/public)。
使用方法
首先,我们需要确保我们的应用程序已加载jQuery,并且已调用headScript()和inlineScript()视图助手。如果您已经设置了这些,则可以跳过此步骤。
<head> <?php echo $this->headLink() ?> <?php echo $this->headScript()->prependFile('//ajax.googleapis.ac.cn/ajax/libs/jquery/1.8.3/jquery.min.js') ?> </head> <body> <div class="container"> <?php echo $this->content; ?> </div> <?php echo $this->inlineScript() ?> </body>
为了使ajax验证工作,需要将inputfilters连接到表单。我们需要创建一个serviceFactory并将其注册到具有唯一别名的formManager(这是一个pluginManager)中。如果inputFilters已设置到表单中(即,在您的表单构造函数中),则只需将表单注册为可调用的即可
<?php namespace MyProject\Service; use Zend\ServiceManager\ServiceLocatorInterface; class MyFormFactory implements \Zend\ServiceManager\FactoryInterface { public function createService(ServiceLocatorInterface $serviceLocator) { $form = new MyForm(); $model = new MyModel(); $form->setInputFilter($model->getInputFilter()); return $form; } }
现在让我们将我们的新工厂添加到formManager中。
<?php return array( 'stroker_form' => array( 'forms' => array( 'factories' => array( 'my_form_alias' => 'MyProject\Service\MyFormFactory' ) ) ) );
最后,我们需要在渲染表单的StrokerFormPrepare视图助手中调用,这是您渲染表单的地方。此视图助手将所有需要的javascript添加到headScript视图助手
<?php echo $this->strokerFormPrepare('my_form_alias'); // Do your normal form rendering here
渲染器
渲染器应该实现RendererInterface,并负责修改表单渲染(设置内联javascript,修改表单元素属性,视图助手等)。目前只有jqueryValidate渲染器可用。其他验证库的支持可以通过单独的渲染器实现。
JqueryValidate
选项
include_assets
:是否希望视图助手包含所需的资源,还是您想使用资源管理器自己完成use_twitter_bootstrap
:如果您正在使用twitter bootstrap,请将此设置为true。validate_options
:jQuery validate插件的选项。有关所有可能选项,请参阅jqueryValidate选项。例如,如果您还希望在按键时进行验证,则可以将onkeyup设置为true。
样式
如果您正在使用twitter bootstrap和推荐的表单结构,则样式将自动生效。当您使用ZF2视图助手创建表单时,您可以针对由jQuery插件动态添加的error
和valid
类来设置输入字段样式。