巧用weui.topTips驗證數據


場景一、有一個輸入金額的場景,這個金額需要驗證,驗證說明如下:

不能為空格;

不能為0;

不能為漢字;

不能為其它字符;

不能大於200;

 

唯一可以的是,只有輸入3~199之間的數字,下面的確定按鈕才會顯示,否則,隱藏這個按鈕。

HTML:

<!--醫生問診金額-->
                <div class="weui-jiaj-panel">
                    <div class="weui-jiaj-money-box dialog js_show">
                        <div class="weui-jiaj-money-box-btn">

                        </div>
                        <div class="weui-jiaj-money-box-three">
                            <div class="weui-flex__item">
                                <a id="showMoney" href="javascript:;" class="weui-btn weui-btn_mini weui-btn_default">其它</a>
                            </div>
                        </div>
                    </div>
                </div>
                <!--其它金額-->
                <div class="weui_dialog_alert" id="showMoneyDialog" style="display: none;">
                    <div class="weui_mask"></div>
                    <div class="weui_dialog">
                        <div class="weui_dialog_hd"><strong class="weui_dialog_title">其它金額</strong></div>
                        <div class="weui_dialog_bd">
                            <div class="weui-jiaj-dialog-panel">
                                <div class="weui-cell">
                                    <div class="weui-cell__bd">
                                        <input id="dialogPrice" type="text" required class="weui-input" placeholder="¥10" />
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="weui_dialog_ft">
                            <div id="otherPriceBtn" class="weui_btn_dialog primary">確定</div>
                        </div>
                    </div>
                </div>

JS:

<script>
            //設置其它金額
            var doctorPrices = [{
                "doctorPrice": "5"
            }, {
                "doctorPrice": "10"
            }, {
                "doctorPrice": "15"
            }, {
                "doctorPrice": "20"
            }, {
                "doctorPrice": "30"
            }, {
                "doctorPrice": "60"
            }];

            var userId = $.cookie('doctorId');

            $(function() {
                selectedPrice();
            });

            var page = $('.page'); //頂層div
            var panel = page.find('weui-jiaj-panel');

            function selectedPrice() {
                var $titleHtml = '';
                for(var a = 0; a < doctorPrices.length; a++) {
                    var priceName = doctorPrices[a].doctorPrice;
                    //點周weui_btn_dialog隱藏
                    $titleHtml += '<button class="price_btn weui-btn weui-btn_mini weui-btn_warn"' + 'name=' + priceName + '>' + priceName + '</button>';
                    $('.price_btn').css('margin', '5px');
                }
                $('.weui-jiaj-money-box-btn').append($titleHtml);

                //選擇金額
                $('.price_btn').click(function() {
                    var titleValue = $(this).attr('name'); //$(this)表示獲取當前被點擊元素的name值

                    var data = {
                        userId: userId,
                        price: titleValue
                    };

                    data = JSON.stringify(data);
                    $.ajax({
                        data: {},
                        dataType: 'json',
                        type: "post",
                        url: postDoctorPrice().replace("{userId}", userId).replace("{price}", titleValue),
                        contentType: 'application/json; charset=utf-8',
                        success: function(data) {
                            if(data && data.status == '200') {
                                weui.topTips('提交成功');
                            }
                        },
                        error: function(data) {
                            location.href = 'doctor_wode.html';
                        }
                    });
                });

                //其它金額
                $('#otherPriceBtn').on('click', function(e) {
                    var otherPrice = $('#dialogPrice').val();
                    otherPrice = parseInt(otherPrice);

                    otherPrice = otherPrice.toString();
                    console.log("其它金額" + otherPrice);
                    var data = {
                        userId: userId,
                        price: otherPrice
                    };

                    data = JSON.stringify(data);
                    $.ajax({
                        data: {},
                        dataType: 'json',
                        type: "post",
                        url: postDoctorPrice().replace("{userId}", userId).replace("{price}", otherPrice), //post 時url帶參數
                        contentType: 'application/json; charset=utf-8',
                        success: function(data) {
                            if(data && data.status == '200') {
                                weui.topTips('設置成功!');
                            }
                        },
                        error: function(data) {
                            location.href = 'doctor_wode.html';
                        }
                    });
                });
            }

            //驗證
            $('input').on('blur',function(){
                var value = this.value;
                var regChinese = new RegExp("[\\u4E00-\\u9FFF]+","g");
                //字符串不能為空
                if(value.length == 0) {
                    $('#otherPriceBtn').hide();
                    weui.topTips('不能為空');
                    //字符串是否為“空”字符即用戶輸入了空格
                }else if(value.replace(/(^s*)|(s*$)/g, "").length ==0){
                    $('#otherPriceBtn').hide();
                    weui.topTips('不能為空');
                    //字符串是否為空或者全部都是空格
                }else if(value == null){
                    $('#otherPriceBtn').hide();
                    weui.topTips('不能為null');
                    //字符串是否為漢字
                }else if(regChinese.test(value)){
                    $('#otherPriceBtn').hide();
                    weui.topTips('不能輸入漢字');
                    //字符串不能為0
                }else if(parseInt(value) == 0){
                    $('#otherPriceBtn').hide();
                    weui.topTips('不能為0');
                    //不能大於200
                }else if(parseInt(value) > 200){
                    $('#otherPriceBtn').hide();
                    weui.topTips('自定義金額不能大於200元');
                    //自定義金額只能是數字
                }else if(typeof(parseInt(value))){
                    $('#otherPriceBtn').show();
                }
            })
        </script>

 

場景二、所有違反規距的都有信息提示,但是“確定”按鈕不隱藏,只是刪除它的click事件,只有符合條件的才可以跳轉

//驗證
            $('input').on('blur', function() {
                var value = this.value;
                var regChinese = new RegExp("[\\u4E00-\\u9FFF]+", "g"); //漢語
                var specialSymbol =/[`~!@#$%^&*_+<>{}\/'[\]]/im; //特殊符號
                //字符串不能為空
                if(value.length == 0) {
                    $('#otherPriceBtn').unbind('click');
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('不能為空,請重新輸入');
                    }, 500);
                    //字符串是否為“空”字符即用戶輸入了空格
                } else if(value.replace(/(^s*)|(s*$)/g, "").length == 0) {
                    $('#otherPriceBtn').unbind('click');
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('不能為空,請重新輸入');
                    }, 500);
                    //字符串是否為空或者全部都是空格
                } else if(value == null) {
                    $('#otherPriceBtn').unbind('click');
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('不能為空,請重新輸入');
                    }, 500);
                    //字符串是否為漢字
                } else if(regChinese.test(value)) {
                    $('#otherPriceBtn').unbind('click');
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('不能輸入漢字,請重新輸入');
                    }, 500);
                    //字符串不能為0
                } else if(parseInt(value) == 0) {
                    $('#otherPriceBtn').unbind('click');
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('不能為0,請重新輸入');
                    }, 500);
                    //小於3
                } else if(parseInt(value) < 4) {
                    $('#otherPriceBtn').unbind('click');
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('自定義金額不能小於3,請重新輸入');
                    }, 500);
                    //不能大於200
                } else if(parseInt(value) > 200) {
                    $('#otherPriceBtn').unbind('click');
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('自定義金額不能大於200,請重新輸入');
                    }, 500);
                } else if(specialSymbol.test(value)){
                    //禁止輸入特殊字符
                    $('#otherPriceBtn').unbind('click');
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('不可輸入!@#¥%……&*特殊字符!');
                    }, 500);
                    //自定義金額只能是數字
                } else if(typeof(parseInt(value))) {
                    setTimeout(function() {
                        $('.hide-description').css('display', 'block').text('你設置的金額為' + value);
                    }, 500);
                    //其它金額
                    $('#otherPriceBtn').on('click', function(e) {
                        var otherPrice = $('#dialogPrice').val();
                        otherPrice = parseInt(otherPrice);

                        otherPrice = otherPrice.toString();
                        console.log("其它金額" + otherPrice);
                        var data = {
                            userId: userId,
                            price: otherPrice
                        };

                        data = JSON.stringify(data);
                        $.ajax({
                            data: {},
                            dataType: 'json',
                            type: "post",
                            url: postDoctorPrice().replace("{userId}", userId).replace("{price}", otherPrice), //post 時url帶參數
                            contentType: 'application/json; charset=utf-8',
                            success: function(data) {
                                if(data && data.status == '200') {
                                    weui.topTips('設置成功!');
                                }
                            },
                            error: function(data) {
                                location.href = 'doctor_wode.html';
                            }
                        });
                    });
                }
            })

 


免責聲明!

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



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