基於jquery的驗證類庫(2)


var vRange = {
    name: 'chkRange',
    warning: "該欄位值有範圍限制",
    getWarning: function($ctl) {
        return ($ctl.attr("warning") || this.warning);
    },
    vd: function($ctl) {

        var result = true;
        var value = $.trim($ctl.val());
        var chkType = ($ctl.attr("chkType") || "int").toLowerCase(); // 檢查類型
        var min = $ctl.attr("chkMin") || 0; // 最小值
        var max = $ctl.attr("chkMax") || 99999; // 最大值

        if ($ctl.attr("warning")) {
            this.warning = $ctl.attr("warning");
        }
        else {
            if (chkType == "int") {
                this.warning = "該欄位只接受 " + min + " ~ " + max + " 範圍的整數";
            }
            else if (chkType == "string") {
                this.warning = "該欄位需填寫 " + min + " ~ " + max + " 個字元(換行佔兩個字元)";
            }
            else {
                this.warning = "該欄位只接受 " + min + " ~ " + max + " 範圍的日期";
            }
        }

        if ((value.length > 0 && (chkType=="int" || chkType=="date")) || chkType=="string") {
          
            switch (chkType) {

                case "int":
                    var intValue = parseInt(value, 10);
                    if (value != intValue || intValue == NaN) {
                        result = false;
                    }
                    else {
                        result = (intValue >= min && intValue <= max);
                    }
                    break;

                case "date":
                    if (typeof min == "number") min = "1900/01/01";
                    if (typeof max == "number") max = "9999/12/31";

                    var date = new Date(value);

                    if (date == "NaN") {
                        this.warning = "您輸入的值無法轉換成日期格式";
                        result = false;
                    }
                    else if (value > max || value < min) {
                        result = false;
                    }
                    break;

                case "string":
                    if (max > 0 && $.trim($ctl.val()).length > max) {
                        result = false;
                    }
                    else if (min > 0 && $.trim($ctl.val()) < min) {
                        result = false;
                    }
                    break;
            }
        }
        return result;
    }
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值