jQuery Validate驗證框架詳解,提交前驗證


現在都用h5表單進行驗證了,以下方式僅做回憶

https://www.runoob.com/jquery/jquery-plugin-validate.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <base href="<%=basePath%>">

        <title>jQuery Validate驗證框架詳解</title>

        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery-1.6.2.min.js"></script>
        <script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery.validate.min.js"></script>
        <script type="text/javascript">
        $(function(){
            var validate = $("#myform").validate({
                               
                rules:{
                    myname:{
                        required:true
                    },
                    email:{
                        required:true,
                        email:true
                    },
                    password:{
                        required:true,
                        rangelength:[3,10]
                    },
                    confirm_password:{
                        equalTo:"#password"
                    }                    
                },
                messages:{
                    myname:{
                        required:"必填"
                    },
                    email:{
                        required:"必填",
                        email:"E-Mail格式不正確"
                    },
                    password:{
                        required: "不能為空",
                        rangelength: $.format("密碼最小長度:{0}, 最大長度:{1}。")
                    },
                    confirm_password:{
                        equalTo:"兩次密碼輸入不一致"
                    }                                    
                },
          debug: true, //調試模式取消submit的默認提交功能   
                //errorClass: "label.error", //默認為錯誤的樣式類為:error   
                focusInvalid: false, //當為false時,驗證無效時,沒有焦點響應  
                onkeyup: false,   
                submitHandler: function(form){   //表單提交句柄,為一回調函數,帶一個參數:form   
                    alert("提交表單");   
                    form.submit();   //提交表單   
                },   
}); }); </script> </head>

html:

<body>
        <form id="myform" method="post" action="">
            <p>
                <label for="myname">用戶名:</label>
                <!-- id和name最好同時寫上 -->
                <input id="myname" name="myname" />
            </p>
            <p>
                <label for="email">E-Mail:</label>
                <input id="email" name="email" />
            </p>
            <p>
                <label for="password">登陸密碼:</label>
                <input id="password" name="password" type="password" />
            </p>
            <p>
                <label for="confirm_password">確認密碼:</label>
                <input id="confirm_password" name="confirm_password" type="password" />
            </p>
            <p>
                <input class="submit" type="submit" value="立即注冊" />
            </p>
        </form>
    </body>
</html>

 自定義驗證:

$.validator.addMethod(
            "zidingyi",                                             //驗證方法名稱
            function(value, element, param){                         //驗證規則
                var reg=new RegExp(/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)/);
                if(!reg.test(value)){
                    return false;
                }
                return true;
            },
            '請填寫正確的身份證號'//驗證提示信息
    );

調用方法:

//input驗證
    $("#form-article-add").validate({
        rules: {
            p_name: {
                required: true,
            },
            jm_name: {
                required: true,
            },
            real_name:{
                required:true,
                maxlength:12,
            },
            grade:{
                required:true,
            },
            id_card:{
                zidingyi1:true,
                required:true,
            },

 

自己開發功能:

$(function(){
    //input驗證
    $("#form-article-add").validate({
        rules:{
            sort:{
                required:true,
                min:1,
                max:999,
                digits:true,
            },
            num:{
                required:true,
                min:1,
                max:999,
                digits:true,
            },
            price:{
                required:true,
                decimalpoint:true,
            },
            reference:{
                required:true,
                min:1,
                max:99999
            },
            starttime:{
                required:true,
                date:true,
            },
            endtime:{
                required:true,
                date:true,
            },
        },
        messages: {
        },
        onkeyup:true,
        debug:true,                //debug模式,開啟時submitHandler出錯也不會跳轉頁面    
        /*保存並提交時執行的事件*/
        submitHandler:function(){
          
            var ti=document.getElementById('input_img');
            /*if (!ti.files || !ti.files[0]) {
                return layer.msg('必須選擇詳情圖');
            }*/
            if (!ti.files || !ti.files[0]) {
                if(filetype) {
                    ti.files = filetype;
                    if(!ti.files) {
                        return layer.msg('必須選擇詳情圖');
                    }
                }else{
                    return layer.msg('必須選擇詳情圖');
                }
            }

            var tii=document.getElementById('input_hxi');
            /*if (!ti.files || !ti.files[0]) {
                return layer.msg('必須選擇歷史小圖');
            }*/
            if (!tii.files || !tii.files[0]) {
                if(historyimg) {
                    tii.files = historyimg;
                    if(!tii.files) {
                        return layer.msg('必須選擇歷史小圖');
                    }
                }else{
                    return layer.msg('必須選擇歷史小圖');
                }
            }

            //判斷基准為小數后兩位
            var referenceid=document.getElementById("reference").value;
            var reg = /^\d+(\.\d{1,2})?$/;
            var isfloat = reg.test(referenceid);//console.log(isfloat);
            if (referenceid%1 !== 0 && !isfloat){
                $("#reference").focus();
                return layer.msg('小數后面只能寫兩位');
            }

            var titles=document.getElementById('title').value;
            if(/[~!@#$^&*()=|{}':;',\[\].<>/?~!@#¥……&*()——+|{}【】‘;:”“'。,、?]/.test(titles))
            {
                return layer.msg('標題不能含有非法字符');
            }
            if (titles.length>15) {
                return layer.msg('標題必須小於15個字符');
            }
            var pd=false;
            layer.confirm('確認添加業績活動?',function() {
                if (pd) {
                    return;
                }
                pd = true;
                layer.load(0,{
                    shade:[0.5,'#fff'],
                    zindex:1
                });
                var formData = new FormData();
                formData.append("file0",$("#input_img")[0].files[0]);
                formData.append("file1",$("#input_hxi")[0].files[0]);
                formData.append("public_key",'<?php echo C('imgparam')['public_key']; ?>');
                formData.append("type",6);
                $.ajax({
                    url: '<?php echo C('web_server_url_admin'); ?>',
                    data:formData,
                    processData:false,
                    contentType:false,
                    type: 'POST',
                    dataType: "JSON",
                    success: function (data) {
                      alert();
                    },
                    error: function () {
                        layer.msg('圖片上傳連接失敗,請檢查您的網絡連接',function(){layer.closeAll();})
                    },
                });
            });
        }
        
    });
});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM