基於jquery的驗證類庫(1)

/* user
* <input type='text' class='chkEmpty chkNum chkFloat '>
* <input type='submit' value='送出' onClick="return validateFields.validateAll();">
*/

var vEmpty = {
    name: "chkEmpty",
    warning: "該欄位必填",
    getWarning: function($ctl) {
        return ($ctl.attr("warning") || this.warning);
    },
    vd: function($ctl) {
        if ($ctl.get(0).tagName.toLowerCase() == "select") {
            this.warning = "該下拉項必選";
        }
        return $.trim($ctl.val()).length > 0;
    }
};
 
var vFloat = {
    name: "chkFloat",
    warning: "該欄位只接受數字或浮點數型態",
    getWarning: function($ctl) {
        return ($ctl.attr("warning") || this.warning);
    },
    vd: function($ctl) {

        var result = true;
        var val = $.trim($ctl.val());

        var negative = ($ctl.attr("negative") || "false").toLowerCase() == "true";
        var dotLen = $ctl.attr("DecimalLength") || 0; // 小數點幾位長度限制
        var intLen = $ctl.attr("IntLength") || 0; // 整數幾位長度限制

        this.warning =
      "該欄位只接受 " +
      (intLen > 0 ? (intLen + " 位" + (negative ? "" : "正") + "整數") : "") +
      (dotLen > 0 ? " 及小數點後 " + dotLen + " 位" : "");

        if (val.length > 0) {
       
            if (val == parseFloat(val)) {

                // 不允許負數
                if (!negative) {
                    result = (parseFloat(val) > 0);
                }

                if (result) {
                    var cmpValue = val.charAt(0) == "-" ?
      val.substring(1).split(".") : cmpValue = val.split(".");

                    if (cmpValue[0].length == 0) {
                        result = false;
                    }
                    else if (intLen > 0 && cmpValue[0].length > intLen) {
                        result = false;
                    }
                    else if (dotLen > 0 && (cmpValue.length >= 2 && cmpValue[1].length > dotLen)) {
                        result = false;
                    }

                    if (dotLen > 0 && cmpValue.length >= 2 && cmpValue[1].length == 0) {
                        $ctl.val(val + "0");
                    }
                }
            }
            else {
                result = false;
            }
        }

        return result;
    }
};

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值