jquery - 如何验证 Zend_Form?

标签 jquery zend-framework validation zend-form

首先,我尝试在 stackoverflow 上搜索类似的主题。我知道一些类似的帖子被关闭,因为已经有答案的帖子,我真的觉得它没有帮助(这里: zend form validation ,也许我不够聪明),所以请管理员,允许这篇文章停留一段时间>**

就我而言,首先我在 Controller 中声明表单:

        $this->_helper->layout->disableLayout();
    $form = new Zend_Form();
    $form->setAction('/user/login')
         ->setMethod('post');

    // Create and configure username element:
    $username = $form->createElement('text', 'username');
    $username->addValidator('alnum')
             ->addValidator('regex', false, array('/^[a-z]+/'))
             ->addValidator('stringLength', false, array(6, 20))
             ->setRequired(true)
             ->addFilter('StringToLower');

    // Create and configure password element:
    $password = $form->createElement('password', 'password');
    $password->addValidator('StringLength', false, array(6))
             ->setRequired(true);

    // Add elements to form:
    $form->addElement($username)
         ->addElement($password)
         // use addElement() as a factory to create 'Login' button:
         ->addElement('submit', 'login', array('label' => 'Login'));

然后我在 View 文件中输出:

<?php echo  $this->testForm;?> 

我们发现了一些非常酷的表单验证器 Jquery 插件,但我不知道如何将它与 Zend Form 中的代码集成。我尝试引用 Zendx_Jquery,似乎甚至不包含表单验证选项。

有人能撕碎一盏灯吗?谢谢。

PS,你可能会在我的代码中发现我已经有一些用于验证的参数,这不是我想要的,我想要的只是前端使用一些 jquery 插件进行实时输入验证。

最佳答案

要添加 jQuery 验证,您可以向表单添加一些装饰器,例如:

    $form->setName('postForm');
    $form->setMethod('post');
    $form->addDecorator('HtmlTag', array('tag' => 'div', 'class' => 'my-lovely-form'));
    $form->setAttrib('enctype', 'multipart/form-data');

然后在 View.phtml 示例中进行 jQuery 验证:

$('#postForm').validate({
            submitHandler: function(form) {
                $("#submit").attr('disabled', 'disabled');
                form.submit();
            },
            onchange: true,         
            errorLabelContainer: $('.error-container'),
            wrapper: "p",
            rules: {
                name: {
                    required: true,
                    minlength: <?php echo $this->validationConfig->form->name->minlength; ?>,
                    maxlength: <?php echo $this->validationConfig->form->name->maxlength; ?>
                },
                title: {
                    required: true,
                    minlength: <?php echo $this->validationConfig->form->title->minlength; ?>,
                    maxlength: <?php echo $this->validationConfig->form->title->maxlength; ?>
                }
            },
            messages: {
                name: {
                    required: "Full name is required",
                    minlength: "Full name has to be at least <?php echo $this->validationConfig->form->name->minlength; ?> characters long",
                    maxlength: "Full name has to be less than <?php echo $this->validationConfig->form->name->maxlength; ?> characters long"
                },
                title: {
                    required: "Title is required",
                    minlength: "Title has to be at least <?php echo $this->validationConfig->form->title->minlength; ?> characters long",
                    maxlength: "Title has to be less than <?php echo $this->validationConfig->form->title->maxlength; ?> characters long"
                }
            }
        });

我希望这可以帮助你。

关于jquery - 如何验证 Zend_Form?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12243668/

相关文章:

php - Laravel ajax 分页设置页面

php - Zend getParam 多值

typescript - 如何使用接口(interface)使 API 响应类型安全/声明? typescript

javascript - 使用javascript检查复选框列表中是否至少选择了一项

javascript - 将 jquery if 语句限制在各自的 div 中

javascript - ajax 加载的 html 中的多个 jQuery 插件实例

jquery - 为什么 jQuery .css ('left' ) 和 .position().left 返回不同的值?

php - 保存网页时图像未保存!

php - 如何正确创建 Zend Feed?

php - 在 Laravel 中验证 2 个数字的幂