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