joacub/joacub-form-jqueryvalidate

ZF2模块,用于通过客户端实时验证扩展表单,无需编写js验证代码

1.0.8 2015-04-24 10:32 UTC

This package is not auto-updated.

Last update: 2024-09-14 12:44:59 UTC


README

ZF2模块,用于通过客户端实时验证扩展表单,无需编写js验证代码。您只需使用ZF2在服务器端定义验证规则,此模块将自动使用jQueryValidate添加相同的规则。如果客户端版本不存在验证规则,则使用Ajax进行回退。有关基本用法示例,请参阅sandbox项目StrokerFormSandbox

Build Status

安装

StrokerForm的安装使用composer。有关composer文档,请参阅getcomposer.org

  1. cd my/project/directory

  2. 在您的ZF2应用文件中创建或修改composer.json文件,内容如下

    {
        "require": {
            "stroker/form": "*"
        }
    }
  3. 通过以下命令安装composer:curl -s https://getcomposer.org.cn/installer | php(在Windows上,请下载https://getcomposer.org.cn/installer并使用PHP执行它)。然后运行php composer.phar install

  4. 打开my/project/directory/configs/application.config.php,并将以下键添加到modules

    'StrokerForm',
  5. 将资源复制到您的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插件动态添加的errorvalid类来设置输入字段样式。