基於jquery的驗證類庫(1)

来源:互联网 发布:apache struts2 tiles 编辑:程序博客网 时间:2024/06/16 14:35

/* 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;
    }
};

原创粉丝点击