如何使用HTML5 + CSS3验证验证ZK Textbox?

时间:2014-01-11 12:14:07

标签: html5 css3 jquery-validate zk

我正在使用ZK7,HTML5,CSS3,如果它是有效的电子邮件,我正在尝试验证zk文本框元素:

<form id="validation-form">
    <fieldset>
        <div class="form-group">
            <label class="block clearfix" for="email">
                <span class="block input-icon input-icon-right">
                    <z:textbox id="emailInput" type="email" class="form-control" placeholder="${labels.login.email}"/>
                    <i class="icon-envelope"></i>
                </span>
            </label>
        </div>
        <div class="clearfix">
            <button id="forgotPassword" type="button" class="width-35 pull-right btn btn-sm btn-danger">
                <i class="icon-lightbulb"></i>
                ${labels.send}
            </button>
        </div>
    </fieldset>
</form>

这是脚本:

<script type="text/javascript">
    jQuery(function($) {

        $('[data-rel=tooltip]').tooltip();

        $(".select2").css('width','200px').select2({allowClear:true})
        .on('change', function(){
            $(this).closest('form').validate().element($(this));
        }); 


        var $validation = false;

        //documentation : http://docs.jquery.com/Plugins/Validation/validate

        $('#validation-form').validate({

            errorElement: 'div',
            errorClass: 'help-block',
            focusInvalid: false,
            rules: {
                email: {
                    required: true,
                    email:true
                }
            },

            messages: {
                email: {
                    required: "Please provide a valid email.",
                    email: "Please provide a valid email."
                }
            },

            invalidHandler: function (event, validator) { //display error alert on form submit   
                $('.alert-danger', $('.login-form')).show();
            },

            highlight: function (e) {
                $(e).closest('.form-group').removeClass('has-info').addClass('has-error');
            },

            success: function (e) {
                $(e).closest('.form-group').removeClass('has-error').addClass('has-info');
                $(e).remove();
            },

            errorPlacement: function (error, element) {
                if(element.is(':checkbox') || element.is(':radio')) {
                    var controls = element.closest('div[class*="col-"]');
                    if(controls.find(':checkbox,:radio').length > 1) controls.append(error);
                    else error.insertAfter(element.nextAll('.lbl:eq(0)').eq(0));
                }
                else if(element.is('.select2')) {
                    error.insertAfter(element.siblings('[class*="select2-container"]:eq(0)'));
                }
                else if(element.is('.chosen-select')) {
                    error.insertAfter(element.siblings('[class*="chosen-container"]:eq(0)'));
                }
                else error.insertAfter(element.parent());
            },

            submitHandler: function (form) {
            },
            invalidHandler: function (form) {
            }
        });




        $('#modal-wizard .modal-header').ace_wizard();
        $('#modal-wizard .wizard-actions .btn[data-dismiss=modal]').removeAttr('disabled');
    })
</script>

当我将z:textbox更改为html输入时,它正在工作:

<input id="emailInput" type="email" class="form-control" placeholder="${labels.login.email}"/>

如何使用zk文本框执行相同的操作?

2 个答案:

答案 0 :(得分:0)

我不是100%确定这是否是你想要的,因为你的问题有很多javascript,jquery和第一个代码看起来不像zk(只有你的国际化很熟悉)。 如果您使用zk,则可以执行以下操作:

<textbox value="@bind(vm.email)" id="email" 
   constraint="/.+@(.+\.[a-z]+|)/: Please enter a valid e-mail address" 
   type="email" placeholder="enter email" />

我确实在那里设置了一个简单的电子邮件约束,但您可以将约束更改为您想要的。
希望这对你有帮助。

答案 1 :(得分:0)

将zqu整合jquery蒙版有很好的example 对于客户端验证,这应该没问题 此外,ZK还提供form validation以及constraints for InputElements