minlength不适用于jquery验证

时间:2014-04-21 00:30:52

标签: php zend-framework2

我在zend 2中使用jquery验证。 除minlength外,所有其他验证类型都有效 这是表单代码:

    $this->add(array(
        'name' => 'usr_name',

        'attributes' => array(
            'type'  => 'text',
            'id' => 'firstName',
            'class'  => 'form-control',

        // jquery validation rules:
            'required'  => 'true',
            'minlength'  => '2',
            'maxlength'  => '20',
        ),
        'options' => array(
            'label' => 'Name',
        ),
    ));

这是js代码:

 $('.form-validation').each(function () {
     $(this).validate({


    errorElement: "span",
    errorClass: "help-block",   

    highlight: function(element) {
        $(element).closest('.control-group').removeClass('success').addClass('error');
        $(element).attr('style', "border-radius: 5px; border:#FF0000 1px solid;");
    },
    unhighlight: function(element) {
        $(element).addClass('valid').closest('.control-group').removeClass('error').addClass('success');
        $(element).attr('style', "border-radius: 4px; border:1px solid #ccc;");
    },
    errorPlacement: function (error, element) {
        $(error).attr('style', "color: #FF0000;");
        if ( element.prop('type') === 'checkbox') {
            error.insertAfter(element.parent());
        } else {
            error.insertAfter(element);
        }
    }

  });
 });

更新:
这是生成的HTML:

<input name="usr_name" type="text" required="required" maxlength="20" id="firstName" class="form-control" value="" aria-required="true">

看看这个:

Strange, how can it be possible!

1 个答案:

答案 0 :(得分:1)

我找到了以下article

ZF2 人们认为这是一个逻辑,这很奇怪!!

因此,对于一个丑陋的解决方法,我按以下方式在所需元素中注入了minlength attribute

 $('.minLength').each(function () {
     $(this).attr("minlength", "8");
 });

minLength是一个可选择添加到所需元素的类,以便 jquery 有机会正确使用它们!