我在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">
看看这个:
答案 0 :(得分:1)
我找到了以下article。
ZF2 人们认为这是一个逻辑,这很奇怪!!
因此,对于一个丑陋的解决方法,我按以下方式在所需元素中注入了minlength
attribute
:
$('.minLength').each(function () {
$(this).attr("minlength", "8");
});
minLength
是一个可选择添加到所需元素的类,以便 jquery 有机会正确使用它们!