/*=============================================================================
* KFIT 閲戣瘉鍩洪噾缃戜笂浜ゆ槗绯荤粺 V3.0
* Copyright(c) 1998-2012 SZKingdom Co. Ltd.
* All right reserved.
*-----------------------------------------------------------------------------
* 鍩洪噾缃戜笂浜ゆ槗鍏敤鍗曞厓
*
* 淇敼鍘嗗彶锛?
*----------------------------------------------------------------------------
* 淇敼鏃堕棿 淇敼浜? 淇敼鍐呭
* 2012-03-01 00:00 river 鍒涘缓
*============================================================================*/
/**
* 琛ㄥ崟楠岃瘉鍣紝鏀寔涓€涓嬪弬鏁?
* {boolean} debug: 鏄惁鍚敤璋冭瘯妯″紡,榛樿: false
* {callback} submitHandler: function(form). 鏈夋晥琛ㄥ崟鎻愪氦鐨勫洖璋冨嚱鏁?鍙互鐢ㄨ鍥炶皟鍑芥暟鍦ㄨ〃鍗曟彁浜ゅ墠浣滃叾浠栧鐞?榛樿琛ㄧ殑鐨剆ubmit
* $(".selector").validate({
* submitHandler: function(form) {
* // TODO 鍏跺畠鎿嶄綔
* form.submit();
* }
* });
* {callback} invalidHandler: function(form, validator).鏃犳晥琛ㄥ崟鎻愪氦鐨勫洖璋冨嚱鏁?
* {selector} ignore: 楠岃瘉琛ㄥ崟鏃?蹇界暐鍏冪礌鐨勯€夋嫨鍣?榛樿: ":hidden"
* {object} rules: 閫氳繃Key/value瀵瑰畾涔夊厓绱犻獙璇佽鍒?Key涓哄厓绱犲悕绉?鎴朿heckboxes/radio缁勫悕), value涓虹敱rule/parameter瀵规垨鏅€氬瓧绗︿覆缁勬垚鐨勫璞?
* 鍙互鍜宑lass/attribute/metadata瀹氫箟鐨勮鍒欑粍鍚堜娇鐢? 姣忎釜瑙勫垯鍙互鎸囧畾涓€涓猟epends灞炴€э紝浠ヤ究鍦ㄦ煇浜涙潯浠朵笅浣跨敤. 榛樿鍙朿lasses, attributes, metadata
* $(".selector").validate({ $(".selector").validate({
* rules: { rules: {
* // 琚浆鎹负{required:true} contact: {
* name: "required", required: true,
* // 绗﹀悎瑙勫垯 email: {
* email: { depends: function(element) {
* required: true, return $("#contactform_email:checked")
* email: true }
* } }
* } }
* }) }})
* {object} messages: 宸睰ey/value瀵硅嚜瀹氫箟閿欒鎻愮ず淇℃伅. Key涓哄厓绱犲悕绉? value涓烘樉绀虹殑淇℃伅,鍙互鏄竴涓瓧绗︿覆,涔熷彲浠ユ槸涓€涓洖璋冨嚱鏁?
* 濡傛灉鏄洖璋冨嚱鏁板垯浠ラ獙璇佽鍒欑殑鍙傛暟涓虹涓€鍏ュ弬锛岄獙璇佺殑鍏冪礌涓虹浜屽叆鍙傦紝骞惰繑鍥炰竴涓瓧绗︿覆.
* $(".selector").validate({
* rules: {
* name: "required",
* email: {required: true, email: true}
* },
* messages: {
* name: "Please specify your name",
* email: {
* required: "We need your email address to contact you",
* email: "Your email address must be in the format of name@domain.com"
* }
* }
* })
* {objct} groups: 鎸囧畾閿欒淇℃伅鍒嗙粍锛屾瘡涓垎缁勭殑鍒嗙粍鍚嶄负瀵硅薄灞炴€у悕锛屽厓绱犲悕绉板垪琛紙浠ラ€楀彿鍒嗛殧锛変负灞炴€у€?鍙敤errorPlacement鍙傛暟鎺у埗鍒嗛挓鏄剧ず鐨勪綅缃?
* $("#myform").validate({
* groups: {username: "fname,lname"},
* errorPlacement: function(error, element) {
* (element.attr("name") == "fname" || element.attr("name") == "lname") ? error.insertAfter("#lastname") : error.insertAfter(element);
* }
* })
* {boolean} onsubmit: 鍦ㄨ〃鍗曟彁浜ゆ椂楠岃瘉鏁版嵁.
* {callback} onfocusin: 鍏冪礌(闄heckboxes/radio)鐨刼nfocusin澶勭悊浜嬩欢,鍦ㄨ澶勭悊浜嬩欢涓獙璇佹暟鎹?
* {callback} onfocusout: 鍏冪礌(闄heckboxes/radio)鐨刼nfocusout澶勭悊浜嬩欢,鍦ㄨ澶勭悊浜嬩欢涓獙璇佹暟鎹?
* {callback} onkeyup: 鍏冪礌鐨刼nkeyup澶勭悊浜嬩欢涓獙璇佹暟鎹? ,鍦ㄨ澶勭悊浜嬩欢涓獙璇佹暟鎹?
* {callback} onclick: checkboxes鍜宺adio鎸夐挳鐨刼nclick澶勭悊浜嬩欢,鍦ㄨ澶勭悊浜嬩欢涓獙璇佹暟鎹?
* {boolean} focusInvalid: 涓簍rue鏃讹紝鍦ㄨ〃鍗曟彁浜ゅけ璐ュ悗锛岄€氳繃validator.focusInvalid()璁剧疆鍏冪礌鐒︾偣锛岄『搴忥細鏈€鍚庤幏寰楃劍鐐圭殑鍏冪礌锛岀涓€涓棤鏁堝厓绱? 榛樿锛歵rue.
* {boolean} focusCleanup: 涓簍rue鏃讹紝褰撴棤鏁堝厓绱犺幏寰楃劍鐐规椂锛屾竻闄ゅ厓绱犵殑errorClass鏍峰紡,闅愯棌鎵€鏈夐敊璇彁绀猴紝璇ュ弬鏁伴伩鍏嶄笌 focusInvalid 缁勫悎浣跨敤.
* {string} meta:In case you use metadata for other plugins, too, you want to wrap your validation rules into their own object that can be specified via this option.
* {string} errorClass: 鏃犳晥鍏冪礌澶栬鏄剧ず绫诲悕,榛樿: "error"
* {string} validClass: 鏈夋晥鍏冪礌澶栬鏄剧ず绫诲悕,榛樿: "valid"
* {string} errorElement: 鐢ㄦ寚瀹氱殑鍏冪礌鍒涘缓鎻愮ず鏍囩. 榛樿涓猴細"label"
* {string} wrapper: 鐢ㄦ寚瀹氱殑鍏冪礌鍖呰閿欒鎻愮ず鏍囩. Useful in combination with errorLabelContainer to create a list of error messages.
* {selector} errorLabelContainer: 楠岃瘉鏃讹紝鏄剧ず鎴栭殣钘忚缃殑鍖归厤鍏冪礌.
* {selector} errorContainer: 楠岃瘉鏃讹紝鏄剧ず鎴栭殣钘忚缃殑鍖归厤鍏冪礌
* $("#myform").validate({
* errorContainer: "#messageBox1, #messageBox2",
* errorLabelContainer: "#messageBox1 ul",
* wrapper: "li", debug:true,
* submitHandler: function() { alert("Submitted!") }
* })
* {callback} showErrors: function(errorMap, errorList).鑷畾涔夋秷鎭樉绀哄鐞嗚繃绋? 绗竴涓弬鏁颁负閿欒鏄犲皠瀵硅薄(key/value),绗簩涓弬鏁颁负閿欒鏁扮粍, 璇ュ嚱鏁板湪楠岃瘉鍣ㄧ殑涓婁笅鏂囦腑琚皟鐢?鍙傛暟涓粎鍖呭惈褰撳墠宸查獙璇佺殑鍏冪礌鐨勪俊鎭?榛樿: None.
* {callback} errorPlacement: function($label, $element).鑷畾涔夊垱寤虹殑鏄剧ず鏍囩鐨勬斁缃綅缃?绗竴涓弬鏁颁负鏄剧ず鏍囩鐨刯Query瀵硅薄,绗簩涓弬鏁颁负鏃犳晥鍏冪礌鐨刯Query瀵硅薄,榛樿鏄剧ず鏍囩鏀惧湪鏃犳晥鍏冪礌鐨勫悗闈?$label.insertAfter(nElement)
* {string|callback} success:濡傛灉璇ュ弬鏁拌鎸囧畾,鍒欏湪鏈夋晥鍏冪礌鍚庨潰鏄剧ず鎻愮ず淇℃伅;濡傛灉璇ュ弬鏁颁负瀛楃涓?鍒欎綔涓烘牱寮忕被鍚嶆坊鍔犲埌鏄剧ず鏍囩,濡傛灉涓哄嚱鏁板垯琚皟鐢?鍏ュ弬涓烘樉绀烘爣绛剧殑jQuery瀵硅薄,鍙互鍦ㄥ嚱鏁颁腑涓烘樉绀烘爣绛捐缃彁绀轰俊鎭?濡傗€淥K鈥?
* {callback} highlight:function(nElement, sErrorClass, sValidClass),绐佸嚭鏄剧ず鏃犳晥鍏冪礌,榛樿娣诲姞errorClass鏍峰紡绫诲埌鏃犳晥鍏冪礌
* {callback} unhighlight:function(nElement, sErrorClass, sValidClass),highlight鐨勫弽鍚戞墽琛?浣跨獊鍑烘樉绀虹殑鏃犳晥鍏冪礌鏀逛负鏈夋晥鍏冪礌
* $(".selector").validate({
* highlight: function(nElement, sErrorClass, sValidClass) {
* $(nElement).addClass(sErrorClass).removeClass(sValidClass);
* $(nElement.form).find("label[for=" + nElement.id + "]").addClass(sErrorClass);
* },
* unhighlight: function(nElement, sErrorClass, sValidClass) {
* $(nElement).removeClass(sErrorClass).addClass(sValidClass);
* $(nElement.form).find("label[for=" + nElement.id + "]").removeClass(sErrorClass);
* }
* });
* {boolean} ignoreTitle:鑾峰彇鎻愮ず淇℃伅鏃?鏄惁浠庡厓绱犵殑title灞炴€т腑鑾?false-鑾峰彇,true-涓嶈幏鍙?榛樿:false
*/
(function ($) {
$.extend($.fn, {
/**
* 鍒涘缓楠岃瘉鍣?骞跺垵濮嬪寲鏁版嵁;璇ュ嚱鏁扮敱jQuery琛ㄥ崟瀵硅薄璋冪敤,
* 濡?$("#test1").validate();
* @param options 楠岃瘉鍣ㄥ弬鏁?
* @returns 楠岃瘉鍣?
*/
validate: function (options) {
// 濡傛灉娌¢€夋嫨jQuery琛ㄥ崟瀵硅薄鍒欎笉鍐嶅悜涓嬫墽琛?
if (!this.length) {
// 杈撳嚭閿欒淇℃伅鍒版帶鍒跺彴
options && options.debug && window.console && console.warn("娌℃湁閫夋嫨琛ㄥ崟瀵硅薄,鏃犳硶楠岃瘉锛?);
return "";
}
// 妫€鏌ヨ琛ㄥ崟鏄惁宸插垱寤洪獙璇佸櫒,濡傛灉宸插垱寤洪獙鍒欑洿鎺ヨ繑鍥炲凡鍒涘缓楠岀殑楠岃瘉鍣?
var validator = $.data(this[0], 'validator');
if (validator) {
return validator;
}
// 濡傛灉鏄疕TML5.鍒欐坊鍔爊ovalidate鏍囩
try {
this.attr('novalidate', 'novalidate');
} catch (e) {
}
// 鍒涘缓楠岃瘉鍣?
validator = new $.validator(options, this[0]);
// 琛ㄥ崟鐨勯獙璇佸櫒鍒涘缓鍚?琚繚瀛樺湪璇ヨ〃鍗曚笂
$.data(this[0], 'validator', validator);
// 璁剧疆琛ㄥ崟鎻愪氦楠岃瘉
if (validator.settings.onsubmit) {
var inputsAndButtons = this.find("input, button");
// allow suppresing validation by adding a cancel class to the submit button
inputsAndButtons.filter(".cancel").click(function () {
validator.cancelSubmit = true;
});
// when a submitHandler is used, capture the submitting button
if (validator.settings.submitHandler) {
inputsAndButtons.filter(":submit").click(function () {
validator.submitButton = this;
});
}
// 璁剧疆琛ㄥ崟鎻愪氦澶勭悊浜嬩欢
this.submit(function (event) {
if (validator.settings.debug) {
event.preventDefault();// 闃绘琛ㄥ崟鎻愪氦
}
function handle() {
if (validator.settings.submitHandler) {
var hidden = null;
if (validator.submitButton) {
// insert a hidden input as a replacement for the missing submit button
hidden = $("").attr("name", validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);
}
validator.settings.submitHandler.call(validator, validator.currentForm);
if (validator.submitButton) {
// and clean up afterwards; thanks to no-block-scope, hidden can be referenced
hidden.remove();
}
return false;
}
return true;
}
// prevent submit for invalid forms or custom submit handlers
if (validator.cancelSubmit) {
validator.cancelSubmit = false;
return handle();
}
// 鎵ц琛ㄥ崟楠岃瘉妫€鏌?
if (validator.form()) {
if (validator.pendingRequest) {
validator.formSubmitted = true;
return false;
}
return handle();
} else {
validator.focusInvalid();
return false;
}
});
}
return validator;
},
/**
* 妫€鏌ヨ〃鍗曟垨鎵€鏈夐€夋嫨鐨勫厓绱犳槸鍚︽湁鏁?
* @return {boolean} 鏄惁鎴愬姛
*/
valid: function () {
if ($(this[0]).is('form')) {
return this.validate().form();
} else {
var valid = true;
var validator = $(this[0].form).validate();
this.each(function () {
valid &= validator.checkElement(this);
});
return valid;
}
},
/**
* 绉婚櫎鍖归厤鍏冪礌鐨勫睘鎬?
* @param {string} sAttributes 浠ョ┖鏍煎垎闅旂殑灞炴€у垪琛?
* @return 杩斿洖绉婚櫎鐨勫睘鎬у璞?
*/
removeAttrs: function (sAttributes) {
var result = {}, $element = this;
$.each(sAttributes.split(/\s/), function (index, sValue) {
result[sValue] = $element.attr(sValue);
$element.removeAttr(sValue);
});
return result;
},
/**
* 璁剧疆/鑾峰彇褰撳墠鍏冪礌(this)鐨勯獙璇佽鍒?
* @param {string} sCommand "add"鍜?remove"
* @params {string|object} rule 楠岃瘉瑙勫垯瀛楃涓插拰楠岃瘉瑙勫垯瀵硅薄
* @returns 褰撳墠鍏冪礌鐨勯獙璇佽鍒?
*/
rules: function (sCommand, rule) {
var nElement = this[0]; // 褰撳墠DOM鍏冪礌
if (sCommand) {
var settings = $.data(nElement.form, 'validator').settings;
var staticRules = settings.rules;
var existingRules = $.validator.getStaticRules(nElement);
switch (sCommand) {
case "add":
$.extend(existingRules, $.validator.normalizeRule(rule));
staticRules[nElement.name] = existingRules;
// 濡傛灉rule鏄獙璇佽鍒欏璞?
if (rule.messages) {
settings.messages[nElement.name] = $.extend(settings.messages[nElement.name], rule.messages);
}
break;
case "remove":
if (!rule) {
delete staticRules[nElement.name];
return existingRules;
}
var filtered = {};
$.each(rule.split(/\s/), function (iIndex, sMethod) {
filtered[sMethod] = existingRules[sMethod];
delete existingRules[sMethod];
});
return filtered;
}
}
var oRules = $.validator.normalizeRules(
$.extend({},
//$.validator.getMetaDataRules(nElement),
$.validator.getClassRules(nElement),
$.validator.getAttributeRules(nElement),
$.validator.getStaticRules(nElement)
), nElement);
// 濡傛灉璇ュ厓绱犺姹傚繀椤昏緭鍏?鍒檕Rules瀵硅薄涓璻equired灞炴€ц鍦ㄧ涓€浣嶇疆
if (oRules.required) {
var param = oRules.required;
delete oRules.required;
oRules = $.extend({required: param}, oRules);
}
return oRules;
}
});
// 鑷畾涔夐€夋嫨鍣?
$.extend($.expr[":"], {
blank: function (a) {
return !$.trim("" + a.value);
},
filled: function (a) {
return !!$.trim("" + a.value);
},
unchecked: function (a) {
return !a.checked;
}
});
/**
* 楠岃瘉鍣ㄦ瀯閫犲嚱鏁?
* @param {object} options 楠岃瘉鍣ㄥ弬鏁?
* @param {$object} form 寰呴獙璇佺殑琛ㄥ崟
*/
$.validator = function (options, form) {
// 榛樿鍙傛暟涓庝紶鍏ョ殑鍙傛暟鍚堝苟瀛樻斁鍦╯ettings涓?
this.settings = $.extend(true, {}, $.validator.defaults, options);
this.currentForm = form;
this.init();
};
$.validator.format = function (source, params) {
if (arguments.length == 1)
return function () {
var args = $.makeArray(arguments);
args.unshift(source);
return $.validator.format.apply(this, args);
};
if (arguments.length > 2 && params.constructor != Array) {
params = $.makeArray(arguments).slice(1);
}
if (params.constructor != Array) {
params = [ params ];
}
$.each(params, function (i, n) {
source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
});
return source;
};
/* 瀹氫箟楠岃瘉鍣╠efaults灞炴€?鍖呭惈楠岃瘉鍣ㄩ粯璁ょ殑灞炴€у拰鏂规硶),
* 鍦ㄥ垱寤洪獙璇佸櫒鏃?璇ュ睘鎬ц鍚堝苟鍒伴獙璇佸櫒鐨剆ettings灞炴€т腑銆?/
$.extend($.validator, {
defaults: {
messages: {},
groups: {}, // 灏嗚〃鍗曞厓绱犻獙璇佸悗鏄剧ず鎻愮ず淇℃伅杩涜鍒嗙粍鏄剧ず,姣忎釜鍒嗙粍鎻愮ず淇℃伅鏄剧ず鍦ㄥ悓涓€涓彁绀哄厓绱?label)涓?
rules: {}, //
errorClass: "error", // 楠岃瘉鍏冪礌澶辫触鍚?璇ュ厓绱犵殑鏄剧ず鐨勫瑙傜被鍚?
validClass: "valid", // 楠岃瘉鍏冪礌鎴愬姛鍚?璇ュ厓绱犵殑鏄剧ず鐨勫瑙傜被鍚?
errorElement: "label", // 楠岃瘉鍏冪礌澶辫触鍚?鎻愮ず淇℃伅鏄剧ず鐨勫厓绱?
focusInvalid: true,
errorContainer: $([]), // jQuery瀵硅薄
errorLabelContainer: $([]), // jQuery瀵硅薄,濡傛灉璁剧疆,鍒欓獙璇佸け璐ュ悗鎻愮ず淇℃伅鏍囩鏄剧ず鍦ㄨ鍏冪礌鍐?
onsubmit: true,
ignore: ":hidden",
ignoreTitle: false,
showErrDlg: false, // 鏄惁鏄剧ず閿欒瀵硅瘽妗?
showErrStyle: "tips", // showErrMsg涓簍rue,鏄剧ず閿欒鏍? td;tips
showErrMsg: true, // 鏄惁鏄剧ず閿欒淇℃伅
fields: {}, // 瀛楁鍚嶇О,{field:"瀛楁鍚?},鏄剧ず瀵硅瘽妗嗘椂浣跨敤
// 杈撳叆鍏冪礌鑾峰彇鐒︾偣鏃跺鐞嗕簨浠?
onfocusin: function (nElement, oEvent) {
this.lastActive = nElement;
// 鑾峰緱鐒︾偣鏃?濡傛灉杈撳叆鏈夋晥鍒欓殣钘忛敊璇爣绛剧Щ闄ら敊璇被
if (this.settings.focusCleanup && !this.blockFocusCleanup) {
this.settings.unhighlight && this.settings.unhighlight.call(this, nElement, this.settings.errorClass, this.settings.validClass);
this.addWrapper(this.getErrorLabel(nElement)).hide();
this.hideAllErrors();
}
if (this.settings.showErrStyle == 'tips') {
$(this.lastActive).poshytip('destroy');
}
},
// 杈撳叆鍏冪礌鐒︾偣绂诲紑澶勭悊浜嬩欢
onfocusout: function (nElement, oEvent) {
var $element = $(nElement);
if ($element.attr('lastcheck') == 'true') {
return;
}
//鍒ゆ柇鏄惁鍙樉绀烘渶鍚庨獙璇佸厓绱犻敊璇?
if (this.settings.singleError || this.settings.showErrStyle == 'tips') {
this.hideAllErrors();
}
// modify by ljy 20120705 楠岃瘉澶辫触鍜屾娴嬮檮鍔犲睘鎬э紝涓嶇煡浠€涔堢敤锛屾殏鏃跺厛鍘绘帀
// fireEvent: "focusout", // 楠岃瘉瑙﹀彂浜嬩欢 focusout,keyup
if (!this.checkable(nElement)) {// && (nElement.name in this.submitted || !this.optional(nElement))){
this.checkElement(nElement, oEvent);
}
},
// 杈撳叆鍏冪礌閿洏澶勭悊浜嬩欢
onkeyup: function (nElement, oEvent) {
if (nElement == this.lastActive) {
this.checkElement(nElement, oEvent);
}
},
// 杈撳叆鍏冪礌鍗曞嚮澶勭悊浜嬩欢
onclick: function (nElement, oEvent) {
// click on selects, radiobuttons and checkboxes
if (nElement.name in this.submitted) {
this.checkElement(nElement, oEvent);
} else if (nElement.parentNode.name in this.submitted) {
this.checkElement(nElement.parentNode, oEvent);
}
},
/**
* 璇ュ嚱鏁板湪楠岃瘉澶辫触鏃惰皟鐢?鐢ㄤ簬鏀瑰彉鍏冪礌鏄剧ず澶栬(绉婚櫎鎴愬姛鏍峰紡,鏄剧ず澶辫触鏍峰紡)
* @param nElement DOM鍏冪礌
* @param sErrorClass 澶辫触鏃剁殑鏄剧ず澶栬
* @param sValidClass 鎴愬姛鏃剁殑鏄剧ず澶栬
*/
highlight: function (nElement, sErrorClass, sValidClass) {
if (nElement.type === 'radio') {
this.findByName(nElement.name).addClass(sErrorClass).removeClass(sValidClass);
} else {
$(nElement).addClass(sErrorClass).removeClass(sValidClass);
}
},
/**
* 涓巋ighlight鎵ц鐩稿弽鐨勮繃绋?绉婚櫎澶辫触鏍峰紡,鏄剧ず鎴愬姛鏍峰紡)
* @param nElement DOM鍏冪礌
* @param sErrorClass 澶辫触鏃剁殑鏄剧ず澶栬
* @param sValidClass 鎴愬姛鏃剁殑鏄剧ず澶栬
*/
unhighlight: function (nElement, sErrorClass, sValidClass) {
if (nElement.type === 'radio') {
this.findByName(nElement.name).removeClass(sErrorClass).addClass(sValidClass);
} else {
$(nElement).removeClass(sErrorClass).addClass(sValidClass);
}
}
},
/**
* 璁剧疆楠岃瘉鍣ㄩ粯璁ゅ弬鏁?浠ey/value褰㈠紡鎻愪緵
* @param {object} settings 鍙傛暟(key/value褰㈠紡)
*/
setDefaults: function (settings) {
$.extend($.validator.defaults, settings);
},
/**
* 瀛樻斁姣忎釜楠岃瘉鏂规硶楠岃瘉澶辫触鍚庣殑鎻愮ず娑堟伅
*/
messages: {
required: "蹇呴』杈撳叆",
email: "鏍煎紡涓嶆纭?,
url: "鏍煎紡涓嶆纭?,
tel: "鏍煎紡涓嶆纭?,
mobile: "鏍煎紡涓嶆纭?,
date: "璇疯緭鍏ユ湁鏁堢殑鏃ユ湡,鏍煎紡:yyyy-mm-dd",
dateint: "璇疯緭鍏ユ湁鏁堢殑鏃ユ湡,鏍煎紡:yyyymmdd",
integer: "璇疯緭鍏ユ湁鏁堢殑鏁村瀷鏁板瓧",
number: "璇疯緭鍏ユ湁鏁堢殑鏁板瓧",
digits: "浠呰兘杈撳叆鏁板瓧",
postalcode: "鏍煎紡涓嶆纭?,
idcard: "鏍煎紡涓嶆纭?,
equalto: "璇疯緭鍏ヤ笌涓婇潰鐩稿悓鐨勬暟鎹?",
chinese: "璇疯緭鍏ユ湁鏁堢殑涓枃瀛楃",
maxlength: $.validator.format("杈撳叆鐨勬暟鎹暱搴﹀繀椤诲皬浜庣瓑浜?{0} 涓瓧绗?),
minlength: $.validator.format("杈撳叆鐨勬暟鎹暱搴﹀繀椤诲ぇ浜庣瓑浜?{0} 涓瓧绗?),
rangelength: $.validator.format("杈撳叆鐨勬暟鎹暱搴﹀繀椤诲湪 {0} 锝?{1} 涓瓧绗︿箣闂?),
range: $.validator.format("杈撳叆鐨勬暟鎹繀椤诲湪{0} 锝?{1}涔嬮棿"),
max: $.validator.format("杈撳叆鐨勬暟鎹繀椤诲皬浜庣瓑浜巤0}."),
min: $.validator.format("杈撳叆鐨勬暟鎹繀椤诲ぇ浜庣瓑浜巤0}.")
},
autoCreateRanges: false, // 鏄惁灏唌in鍜宮ax杞崲涓簉ange,minlength鍜宮axlength杞崲涓簉angelength
/**
* 楠岃瘉鍣ㄧ殑鍘熷瀷瀵硅薄,瀹氫箟浜嗛獙璇佸櫒鍖呭惈鐨勫睘鎬у拰鏂规硶
*/
prototype: {
// 鍒濆鍖栭獙璇佸櫒
init: function () {
this.labelContainer = $(this.settings.errorLabelContainer);
this.errorContext = this.labelContainer && this.labelContainer.length || $(this.currentForm);
this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer);
this.submitted = {}; // 淇濆瓨楠岃瘉澶辫触鐨勫厓绱?$.extend(this.submitted, this.errorMap);
this.valueCache = {};
this.pendingRequest = 0;
this.pending = {};
this.invalid = {}; // 淇濆瓨楠岃瘉澶辫触鐨勫厓绱?鏍煎紡:鍏冪礌鍚嶇О = true/澶辫触鎻愮ず淇℃伅($.extend({}, this.errorMap);)
this.reset();
// 澶勭悊琛ㄥ崟鍏冪礌楠岃瘉鎻愮ず鍒嗙粍鏄剧ず
var groups = (this.groups = {});
$.each(this.settings.groups, function (key/*灞炴€у悕*/, value/*灞炴€у€?/) {
$.each(value.split(","), function (index, name) {
groups[name] = key; // 浠ュ厓绱犲悕=鍒嗙粍鍚嶅瓨鏀?
});
});
// 澶勭悊鑷畾涔夊厓绱犻獙璇佽鍒?
var rules = this.settings.rules;
$.each(rules, function (key, value) {
rules[key] = $.validator.normalizeRule(value);
});
// 琛ㄥ崟鍏冪礌鐨勯獙璇佸鐞嗚繃绋?璇ヨ繃绋嬭鍏宠仈鍒拌〃鍗曞厓绱犵殑focusin focusout keyup click浜嬩欢涓?
function delegate(event) {
var validator = $.data(this[0].form, "validator");
var eventType = "on" + event.type.replace(/^validate/, "");
var fnEvent = validator.settings[eventType];
fnEvent && fnEvent.call(validator, this[0], event);
}
// 涓鸿〃鍗曞厓绱犳坊鍔犱簨浠?focusin銆乫ocusout銆乲eyup)澶勭悊杩囩▼(delegate)
// radio銆乧heckbox銆乻elect銆乷ption鍏冪礌棰濆娣诲姞click浜嬩欢
$(this.currentForm)
.validateDelegate("[type='text'], [type='password'], [type='file'], " +
"select, textarea, [type='number'], [type='integer'] [type='search'] , " +
"[type='tel'], [type='url'], [type='date'], [type='dateint'], [type='email'], [type='datetime'], " +
"[type='month'], [type='week'], [type='time'], [type='datetime-local'], " +
"[type='range'], [type='color']", "focusin focusout keyup", delegate)
.validateDelegate("[type='radio'], [type='checkbox'], select, option",
"click", delegate);
// 璁剧疆琛ㄥ崟楠岃瘉澶辫触鍚庣殑澶勭悊浜嬩欢,鍦╢orm鍜宻topRequest鍑芥暟涓Е鍙戣浜嬩欢
if (this.settings.invalidHandler) {
$(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler);
}
},
/**
* 楠岃瘉褰撳墠琛ㄥ崟杈撳叆
* @returns 鎴愬姛杩斿洖true,鍚﹀垯杩斿洖false
*/
form: function () {
this.prepareForm();
// 妫€鏌ユ墍鏈夎緭鍏ュ厓绱?
for (var i = 0, aElements = (this.currentElements = this.getFormElements()); aElements[i]; i++) {
this.check(aElements[i]);
}
$.extend(this.submitted, this.errorMap);
this.invalid = $.extend({}, this.errorMap);
// 鏈夐獙璇佸け璐ュ厓绱犲垯瑙﹀彂琛ㄥ崟invalid-form浜嬩欢
var bValid = this.valid();
if (!bValid) {
$(this.currentForm).triggerHandler("invalid-form", [this]);
}
this.showErrors();
return bValid;
},
/**
* 楠岃瘉琛ㄥ崟涓殑涓€涓厓绱犳槸鍚︽湁鏁?
* @param {dom} nElement
*/
checkElement: function (nElement, event) {
nElement = this.validationTargetFor(this.clean(nElement));
this.lastElement = nElement;
this.prepareElement(nElement);
this.currentElements = $(nElement);
var result = this.check(nElement, event);
if (result) {
delete this.invalid[nElement.name];
} else {
this.invalid[nElement.name] = true;
}
if (!this.numberOfInvalids()) {
// Hide error containers on last error
this.toHide = this.toHide.add(this.containers);
}
this.showErrors();
return result;
},
/**
* 鏄剧ず楠岃瘉澶辫触鐨勯敊璇俊鎭?
* @param {object} oErrors 鍙€?鏍煎紡:鍏冪礌鍚嶇О = 閿欒淇℃伅
*/
showErrors: function (oErrors) {
if (oErrors) {
// 娣诲姞閿欒淇℃伅椤瑰埌 list 鍜?map涓?
$.extend(this.errorMap, oErrors);
this.errorList = [];
for (var sElementName in oErrors) {
this.errorList.push({
message: oErrors[sElementName],
element: this.findByName(sElementName)[0]
});
}
// 浠?successList 涓Щ闄?$.grep(array, callback, [invert]):浣跨敤杩囨护鍑芥暟杩囨护鏁扮粍鍏冪礌)
this.successList = $.grep(this.successList, function (nEelement) {
return !(nEelement.name in oErrors);
});
}
// 濡傛灉鏈夎嚜瀹氫箟鐨勬樉绀洪敊璇彁绀虹殑鍑芥暟(settings.showErrors)鍒欒皟鐢ㄨ嚜瀹氫箟,鍚﹀垯璋冪敤榛樿鐨?
this.settings.showErrors
? this.settings.showErrors.call(this, this.errorMap, this.errorList)
: this.defaultShowErrors();
},
resetForm: function () {
if ($.fn.resetForm) {
$(this.currentForm).resetForm();
}
this.submitted = {};
this.lastElement = null;
this.prepareForm();
this.hideErrors();
this.getFormElements().removeClass(this.settings.errorClass);
},
numberOfInvalids: function () {
return this.objectLength(this.invalid);
},
objectLength: function (obj) {
var count = 0;
for (var i in obj) {
count++;
}
return count;
},
hideErrors: function () {
if (this.settings.showErrStyle == 'tips')
this.hideAllErrors();
else
this.addWrapper(this.toHide).hide();
},
hideAllErrors: function () {
if (this.settings.showErrStyle == 'tips') {
for (var i = 0, aElements = (this.currentElements = this.getFormElements()); aElements[i]; i++)
$(aElements[i]).poshytip('destroy');
} else {
for (var i = 0, aElements = (this.currentElements = this.getFormElements()); aElements[i]; i++) {
this.addWrapper(this.getErrorLabel(aElements[i])).hide();
}
}
},
valid: function () {
var sErr = "";
if (this.settings.showErrDlg) {
var s;
for (s in this.errorMap)
sErr += this.getFieldName(s) + this.errorMap[s] + "
";
if (sErr != "")
KDlg.info(sErr);
}
return this.size() == 0;
},
getFieldName: function (sField) {
return this.settings.fields[sField] || sField;
},
size: function () {
return this.errorList.length;
},
focusInvalid: function () {
if (this.settings.focusInvalid) {
try {
$(this.findLastActive() || this.errorList.length && this.errorList[0].element || [])
.filter(":visible")
.focus()
.trigger("focusin"); // 鎵嬪姩瑙﹀彂focusin浜嬩欢
} catch (e) {
// ignore IE throwing errors when focusing hidden elements
}
}
},
findLastActive: function () {
var lastActive = this.lastActive;
return lastActive && $.grep(this.errorList,function (n) {
return n.element.name == lastActive.name;
}).length == 1 && lastActive;
},
/**
* 鑾峰彇褰撳墠琛ㄥ崟鐨勮緭鍏ュ厓绱犲苟杩斿洖,杩斿洖鐨勮緭鍏ュ厓绱犱腑,浠呭寘鍚?
* input銆乻elect銆乼extarea绛夊厓绱?涓斿幓闄ゆ棤鏁堢殑[disabled]銆?
* 鎻愪氦鎸夐挳[:submit]銆?閲嶇疆鎸夐挳[:reset]銆佸浘鍍廩:image]鍜?
* this.settings.ignore灞炴€т腑鎸囧畾鐨勫厓绱?鍚屽悕鍏冪礌浠呰繑鍥炶
* 鍚嶇О鐨勭涓€涓厓绱?濡?鍗曢€夋寜閽粍[radio],浠呰繑鍥炵涓€涓崟
* 閫夋寜閽?
* @return jQery瀵硅薄鏁扮粍
*/
getFormElements: function () {
var validator = this;
var rulesCache = {}; // 瀛樻斁褰?
// 閫夋嫨琛ㄥ崟涓墍鏈夋湁鏁堣緭鍏ュ厓绱?
return $(this.currentForm)
.find("input, select, textarea")// 鍏ㄩ儴杈撳叆鍏冪礌
.not(":submit, :reset, :image, [disabled]")// 鍘婚櫎鎻愪氦銆侀噸缃€佸浘鐗囧拰鏃犳晥鐨?
.not(this.settings.ignore)// 鍘婚櫎蹇界暐鐨?
.filter(function () {
// 濡傛灉娌¤缃厓绱犵殑name灞炴€?鍒欏湪鎺у埗鍙拌緭鍏ヨ皟璇曚俊鎭?
!this.name && validator.settings.debug && window.console && console.error("%o 娌℃湁璁剧疆 name 灞炴€?, this);
// 浠呴€夋嫨鍚屽悕鍏冪礌鐨勭涓€涓?濡俽adio鎸夐挳
if (this.name in rulesCache || !validator.objectLength($(this).rules()))
return false;
rulesCache[this.name] = true;
return true;
});
},
clean: function (selector) {
return $(selector)[0];
},
/**
* 鑾峰彇褰撳墠鎵€鏈夐敊璇爣绛?骞惰繑鍥?jQuery瀵硅薄鏁扮粍)
*/
getErrorLabels: function () {
return $(this.settings.errorElement + "." + this.settings.errorClass, this.errorContext);
},
/**
* 娓呯┖褰撳墠楠岃瘉淇℃伅
*/
reset: function () {
this.successList = [];
this.errorList = [];
this.errorMap = {};
this.toShow = $([]);
this.toHide = $([]);
this.currentElements = $([]);
},
/**
* 鍑嗗楠岃瘉琛ㄥ崟
*/
prepareForm: function () {
this.reset();
this.toHide = this.getErrorLabels().add(this.containers);
},
/**
* 鍑嗗楠岃瘉鍏冪礌
*/
prepareElement: function (nElement) {
this.reset();
this.toHide = this.getErrorLabel(nElement);
},
/**
* 楠岃瘉琛ㄥ崟鍏冪礌鐨勮緭鍏ユ槸鍚︽湁鏁?楠岃瘉澶辫触鍔犲叆errorList銆乪rrorMap鍜宻ubmitted涓?
* @param {dom object|array} nEelement 褰撳墠楠岃瘉鐨凞OM鍏冪礌,濡傛灉鏄痳adio/checkbox鍒欎娇鍏冪礌鏁扮粍
* @returns true/false
*/
check: function (nEelement, event) {
nEelement = this.validationTargetFor(this.clean(nEelement));
// 鑾峰彇璇ュ厓绱犵殑楠岃瘉瑙勫垯
var oRules = $(nEelement).rules();
var bDependencyMismatch = false;
//鍙栧緱楠岃瘉
var oFireEvent;
var arrRuleFire;
if (event) {
var sFireEvent = $(nEelement).attr("fireEvent");
var sRules = "";
$.each(oRules, function (i, n) {
sRules = sRules + "'" + i + "'" + ","
});
sRules = sRules.substring(0, sRules.length - 1);
if (!sFireEvent) {
sFireEvent = "{focusout:[" + sRules + "]}";
}
oFireEvent = eval("(" + sFireEvent + ")");
arrRuleFire = eval("oFireEvent." + event.type);
}
//for ( sMethod in oRules) { 鍦ㄨ鍙ヤ腑瀹氫箟,棣栨鎵ц鍒拌繖閲屼細鎶ラ敊 modify by ljy 20120620
var sMethod = null;
for (sMethod in oRules) {
if (event && oFireEvent) {
if (!arrRuleFire) continue;
if ($.inArray(sMethod, arrRuleFire) == -1)
continue;
}
var oRuleItem = {method: sMethod, parameters: oRules[sMethod] };
try {
// 鎵ц璇ヨ鍒欓獙璇?杩斿洖true/false/dependency-mismatch/pending
var result = $.validator.methods[sMethod].call(this, nEelement.value.replace(/\r/g, ""), nEelement, oRuleItem.parameters, event);
// if a method indicates that the field is optional and therefore valid,
// don't mark it as valid when there are no other rules
if (result == "dependency-mismatch") {
bDependencyMismatch = true;
continue;
}
bDependencyMismatch = false;
if (result == "pending") {
this.toHide = this.toHide.not(this.getErrorLabel(nEelement));
return false;
}
if (!result) {
this.formatAndAddError(nEelement, oRuleItem);
return false;
}
} catch (e) {
this.settings.debug && window.console && console.log("妫€鏌ュ厓绱?" + nEelement.id + "鍙戠敓寮傚父:", e);
throw e;
}
}
if (bDependencyMismatch) return false;
if (this.objectLength(oRules))
this.successList.push(nEelement);
return true;
},
// return the custom message for the given element and validation method
// specified in the element's "messages" metadata
customMetaMessage: function (nElement, method) {
if (!$.metadata) return;
var meta = this.settings.meta ? $(nElement).metadata()[this.settings.meta]
: $(nElement).metadata();
return meta && meta.messages && meta.messages[method];
},
// return the custom message for the given element name and validation method
customMessage: function (name, method) {
var m = this.settings.messages[name];
return m && (m.constructor == String ? m : m[method]);
},
/**
* 鑾峰彇鍏冪礌鎻愮ず淇℃伅
* @param {dom} nElement
* @param {string} 楠岃瘉鍑芥暟鍚嶇О
* @returns 鎻愮ず淇℃伅
*/
getMessage: function (nElement, sMethod) {
var sMsg = this.customMessage(nElement.name, sMethod);
if (sMsg === undefined) {
sMsg = this.customMetaMessage(nElement, sMethod);
if (sMsg === undefined) {
sMsg = !this.settings.ignoreTitle && nElement.title || undefined;
if (sMsg === undefined) {
sMsg = $.validator.messages[sMethod];
if (sMsg === undefined) {
sMsg = "Warning: No message defined for " + nElement.name + "";
}
}
}
}
return sMsg;
},
/**
* 鍦╟heck鍑芥暟涓?褰撳厓绱犳牎楠屽け璐ュ悗琚皟鐢?骞跺皢澶辫触鍏冪礌鍜屼俊鎭皝瑁呭埌瀵硅薄,
* 淇濆瓨鍒癳rrorList涓?灏嗘彁绀轰俊鎭洿鏂板埌errorMap鍜宻ubmitted涓?
* @param {dom object} nElement 澶辫触鐨勫厓绱?
* @param {object} oRule 鎵ц澶辫触鐨勬牎楠岃鍒?
*/
formatAndAddError: function (nElement, oRrule) {
var oRegex = /\$?\{(\d+)\}/g;
var sMsg = this.getMessage(nElement, oRrule.method);
if (typeof sMsg == "function") {
sMsg = sMsg.call(this, oRrule.parameters, nElement);
} else if (oRegex.test(sMsg)) {
// 鏍煎紡鍖栨彁绀轰俊鎭?
sMsg = jQuery.format(sMsg.replace(theregex, '{$1}'), oRrule.parameters);
}
this.errorList.push({
message: sMsg,
element: nElement
});
this.errorMap[nElement.name] = sMsg;
this.submitted[nElement.name] = sMsg;
},
addWrapper: function (toToggle) {
if (this.settings.wrapper)
toToggle = toToggle.add(toToggle.parent(this.settings.wrapper));
return toToggle;
},
/**
* 榛樿鏄剧ずerrorList涓殑閿欒鎻愮ず淇℃伅鐨勫嚱鏁?璇ュ嚱鏁板湪showErrors璋冪敤
*/
defaultShowErrors: function () {
if (this.settings.showErrStyle == 'tips') {
this.ShowErrorsByTips();
} else {
this.ShowErrorsByLable();
}
},
ShowErrorsByLable: function () {
// 鏄剧ず澶辫触鍏冪礌鎻愮ず
for (var i = 0; this.errorList[i]; i++) {
var oError = this.errorList[i];
// 閫氳繃鏍峰紡绫绘敼鍙橀獙璇佸け璐ュ厓绱犵殑鏄剧ず澶栬
this.settings.highlight && this.settings.highlight.call(this, oError.element, this.settings.errorClass, this.settings.validClass);
// 鏄剧ず鎻愮ず淇℃伅鍒版爣绛句腑
if (this.settings.showErrMsg != false)
this.showLabel(oError.element, oError.message);
}
if (this.errorList.length) {
this.toShow = this.toShow.add(this.containers);
}
// 鏄剧ず鎴愬姛鍏冪礌鎻愮ず
if (this.settings.success) {
for (var i = 0; this.successList[i]; i++) {
this.showLabel(this.successList[i]);
}
}
if (this.settings.unhighlight) {
for (var i = 0, elements = this.validElements(); elements[i]; i++) {
this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass);
}
}
this.toHide = this.toHide.not(this.toShow);
this.hideErrors();
this.addWrapper(this.toShow).show();
},
ShowErrorsByTips: function () {
this.hideAllErrors();
try {
this.showTips(this.errorList[0].element, this.errorList[0].message);
} catch (e) {
// ignore IE throwing errors when focusing hidden elements
}
if (this.errorList.length) {
this.toShow = this.toShow.add(this.containers);
}
// 鎴愬姛鍏冪礌涓嶆彁绀?
for (var i = 0; this.successList[i]; i++) {
$(this.successList[i]).poshytip('destroy');
}
if (this.settings.unhighlight) {
for (var i = 0, elements = this.validElements(); elements[i]; i++) {
this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass);
}
}
},
validElements: function () {
return this.currentElements.not(this.invalidElements());
},
invalidElements: function () {
return $(this.errorList).map(function () {
return this.element;
});
},
/**
* 涓烘寚瀹氬厓绱犳樉绀洪敊璇彁绀轰俊鎭?
* @param nElement
* @param {string} sMsg 鏍囩鎻愮ず淇℃伅
*/
showLabel: function (nElement, sMsg) {
var $label = this.getErrorLabel(nElement);
if ($label.length) {
// 宸插瓨鍦ㄥ垯鍒锋柊鏄剧ず澶栬
$label.removeClass(this.settings.validClass).addClass(this.settings.errorClass);
//label浣嶇疆鏄剧ず
if ($label.parent().next().length == 1) {
$label.css('top', $label.parent().next().offset().top + 'px');
$label.css('left', $label.prev().offset().left + $label.prev().width() + 10 + 'px');
$label.css('width', $label.parent().next().width() - 27 + 'px');
$label.css('height', $label.parent().next().height() + 'px');
$label.css('line-height', $label.parent().next().height() + 'px');
$label.css('padding', '0 5px 0 25px');
} else {
$label.css('top', $label.prev().offset().top + 'px');
$label.css('left', $label.prev().offset().left + $label.prev().width() + 10 + 'px');
$label.css('height', $label.prev().height() + 'px');
$label.css('line-height', $label.prev().height() + 'px');
$label.css('padding', '0 5px 0 25px');
}
// 濡傛灉鏄嚜鍔ㄥ垱寤虹殑鏍囩鍒欐洿鏂版樉绀轰俊鎭?
$label.attr("generated") && $label.html(sMsg);
} else {
// 鍒涘缓 label
$label = $("<" + this.settings.errorElement + "/>")
.attr({"for": this.getIdOrName(nElement), generated: true})
.addClass(this.settings.errorClass)
.html(sMsg || "");
// 鍒涘缓閿欒鎻愮ず鏍囩鐨勫鍣ㄦ爣绛?
if (this.settings.wrapper) {
$label = $label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
}
// 鏀剧疆鏍囩
if (!this.labelContainer.append($label).length) {
$placeElement = $("#" + this.groups[nElement.name]);
if ($placeElement.length) {
this.settings.errorPlacement // 鑷畾涔夋斁缃鐞嗗嚱鏁?
? this.settings.errorPlacement($label, $($placeElement))
: $label.insertAfter($placeElement); // 榛樿鏀惧湪杈撳叆鍏?
}
else {
this.settings.errorPlacement // 鑷畾涔夋斁缃鐞嗗嚱鏁?
? this.settings.errorPlacement($label, $(nElement))
: $label.insertAfter(nElement); // 榛樿鏀惧湪杈撳叆鍏冪礌鍚庨潰
}
}
//label浣嶇疆鏄剧ず
if ($label.parent().next().length == 1) {
$label.css('top', $label.parent().next().offset().top + 'px');
$label.css('left', $label.prev().offset().left + $label.prev().width() + 10 + 'px');
$label.css('width', $label.parent().next().width() - 27 + 'px');
$label.css('height', $label.parent().next().height() + 'px');
$label.css('line-height', $label.parent().next().height() + 'px');
$label.css('padding', '0 5px 0 25px');
} else {
$label.css('top', $label.prev().offset().top + 'px');
$label.css('left', $label.prev().offset().left + $label.prev().width() + 10 + 'px');
$label.css('height', $label.prev().height() + 'px');
$label.css('line-height', $label.prev().height() + 'px');
$label.css('padding', '0 5px 0 25px');
}
}
if (!sMsg && this.settings.success) {
$label.text("");
typeof this.settings.success == "string"
? label.addClass(this.settings.success)
: this.settings.success($label);
}
this.toShow = this.toShow.add($label);
},
showTips: function (nElement, sMsg) {
var $element = $(nElement);
var sTipsLayout = $element.attr('tipslayout') || "";
var oOptions = {};
switch (sTipsLayout.toLowerCase()) {
case 'left':
oOptions.alignX = 'left';
oOptions.alignY = 'center';
oOptions.offsetX = 5;
break;
case "top":
oOptions.alignX = 'inner-left';
oOptions.alignY = 'top';
oOptions.offsetY = 5;
oOptions.offsetX = 0;
break;
case 'bottom':
oOptions.alignX = 'inner-left';
oOptions.alignY = 'bottom';
oOptions.offsetX = 0;
oOptions.offsetY = 5;
break;
default:
oOptions.alignX = 'right';
oOptions.alignY = 'center';
oOptions.offsetX = 5;
break;
}
oOptions.showOn = 'none';
oOptions.content = sMsg;
oOptions.alignTo = 'target';
$(nElement).poshytip(oOptions);
$(nElement).poshytip('show');
},
/**
* 鑾峰彇鎸囧畾鍏冪礌鐨勯敊璇爣绛?濡傛灉娌℃湁鍒欒繑鍥炵┖jQuery瀵硅薄
*/
getErrorLabel: function (nElement) {
var sName = this.getIdOrName(nElement);
return this.getErrorLabels().filter(function () {
return $(this).attr('for') == sName;
});
},
/**
* 鑾峰彇鍏冪礌鐨勫悕绉?name)鎴栨爣璇?id),鍒嗙粍鏄剧ず鐨勮繑鍥炲垎缁勫悕绉?
* radio/checkbox杩斿洖鍚嶇О,鍚﹀垯杩斿洖Id,濡傛灉娌¤缃甶d杩斿洖name
*/
getIdOrName: function (nElement) {
return this.groups[nElement.name] || (this.checkable(nElement) ? nElement.name : nElement.id || nElement.name);
},
validationTargetFor: function (nElement) {
// if radio/checkbox, validate first element in group instead
if (this.checkable(nElement)) {
nElement = this.findByName(nElement.name).not(this.settings.ignore)[0];
}
return nElement;
},
// 妫€鏌ュ厓绱犵被鍨嬫槸鍚︽槸radio鎴朿heckbox
checkable: function (nElement) {
return /radio|checkbox/i.test(nElement.type);
},
findByName: function (sName) {
// select by name and filter by form for performance over form.find("[name=...]")
var nForm = this.currentForm;
return $(document.getElementsByName(sName)).map(function (index, nElement) {
return nElement.form == nForm && nElement.name == sName && nElement || null;
});
},
getLength: function (value, nElement) {
switch (nElement.nodeName.toLowerCase()) {
case 'select':
return $("option:selected", nElement).length;
case 'input':
if (this.checkable(nElement))
return this.findByName(nElement.name).filter(':checked').length;
}
return value.length;
},
depend: function (param, nElement) {
return this.dependTypes[typeof param]
? this.dependTypes[typeof param](param, nElement)
: true;
},
dependTypes: {
"boolean": function (param, nElement) {
return param;
},
"string": function (param, nElement) {
return !!$(param, nElement.form).length;
},
"function": function (param, nElement) {
return param(nElement);
}
},
optional: function (nElement) {
//return !$.validator.methods.required.call(this, $.trim(nElement.value), nElement) && "dependency-mismatch";
// modify by ljy 20120705 "dependency-mismatch"濂藉儚娌′粈涔堢敤
return !$.validator.methods.required.call(this, $.trim(nElement.value), nElement);
},
startRequest: function (nElement) {
if (!this.pending[nElement.name]) {
this.pendingRequest++;
this.pending[nElement.name] = true;
}
},
stopRequest: function (nElement, valid) {
this.pendingRequest--;
// sometimes synchronization fails, make sure pendingRequest is never < 0
if (this.pendingRequest < 0)
this.pendingRequest = 0;
delete this.pending[nElement.name];
if (valid && this.pendingRequest == 0 && this.formSubmitted && this.form()) {
$(this.currentForm).submit();
this.formSubmitted = false;
} else if (!valid && this.pendingRequest == 0 && this.formSubmitted) {
$(this.currentForm).triggerHandler("invalid-form", [this]);
this.formSubmitted = false;
}
},
previousValue: function (nElement) {
return $.data(nElement, "previousValue") || $.data(nElement, "previousValue", {
old: null,
valid: true,
message: this.getMessage(nElement, "remote")
});
}
},
/**
* 淇濆瓨楠岃瘉瑙勫垯瀵硅薄
*/
oClassRuleSettings: {
required: {required: true},
email: {email: true},
url: {url: true},
tel: {tel: true},
mobile: {mobile: true},
date: {date: true},
dateint: {dateint: true},
integer: {integer: true},
number: {number: true},
digits: {digits: true},
postalcode: {postalcode: true},
idcard: {idcard: true},
equalto: {equalto: true},
chinese: {chinese: true}
},
/**
* 娣诲姞鏍峰紡绫婚獙璇佽鍒?鏀寔1涓垨2涓叆鍙?
* @examples
* jQuery.validator.addClassRules({
* name: {required: true, minlength: 2},
* zip: {required: true, digits: true, minlength: 5, maxlength: 5}
* });
*
* jQuery.validator.addClassRules("name", {required: true, minlength: 2});
* @return object 楠岃瘉瑙勫垯瀵硅薄
*/
addClassRules: function () {
if (arguments[0].constructor == String) {
this.oClassRuleSettings[arguments[0]] = arguments[1];
} else {
$.extend(this.oClassRuleSettings, arguments[0]);
}
},
/**
* 鑾峰彇DOM鍏冪礌閫氳繃class灞炴€у€煎畾涔夌殑楠岃瘉瑙勫垯,灞炴€у€间负validator.oClassRuleSettings
* 瀵硅薄鐨勫睘鎬у悕绉?濡?
* @param {dom} nElement 寰呴獙璇佸厓绱?
* @returns object 楠岃瘉瑙勫垯瀵硅薄
*/
getClassRules: function (nElement) {
var oRules = {};
var sClasses = $(nElement).attr('class');
sClasses && $.each(sClasses.split(' '), function () {
if (this in $.validator.oClassRuleSettings) {
$.extend(oRules, $.validator.oClassRuleSettings[this]);
}
});
return oRules;
},
/**
* 鑾峰彇DOM鍏冪礌閫氳繃灞炴€у悕绉板畾涔夌殑楠岃瘉瑙勫垯,灞炴€у悕绉颁负validator.methods瀵硅薄涓殑鏂规硶鍚嶇О
*
* @param {dom} nElement 寰呴獙璇佸厓绱?
* @returns object 楠岃瘉瑙勫垯瀵硅薄
*/
getAttributeRules: function (nElement) {
var nAttr, sValue, oRules = {};
for (var sMethod in $.validator.methods) {
nAttr = nElement.getAttributeNode(sMethod);
if (nAttr) {
sValue = nAttr.value;
if (sValue && $.trim(sValue).length > 0 && $.trim(sValue) != "null" && $.trim(sValue) != "undefined") {
if (sValue == "true") {
oRules[sMethod] = true;
} else if (nAttr.name === sMethod) {
oRules[sMethod] = sValue;
}
}
}
}
/* 瀵规枃鏈緭鍏ユ,濡傛灉娌¤缃睘鎬maxlength],鍒欏叾鍙兘杩斿洖鍊兼湁:-1, 2147483647 (IE) 鎴?524288 (safari)
鎵€浠?濡傛灉鍑虹幇杩欎簺鍊?鍒欒鏄庢渶澶ч暱搴︿笉闄愬埗,鏁呭垹闄よ楠岃瘉瑙勫垯 */
if (oRules.maxlength && /-1|2147483647|524288/.test(oRules.maxlength)) {
delete oRules.maxlength;
}
return oRules;
},
/**
* 鑾峰彇DOM鍏冪礌閫氳繃$("#鏍囪瘑").validate()璁剧疆鐨勮鍒?
* @param {dom} nElement 寰呴獙璇佸厓绱?
* @returns object 楠岃瘉瑙勫垯瀵硅薄
*/
getStaticRules: function (nElement) {
var oRules = {};
var validator = $.data(nElement.form, 'validator');
if (validator.settings.rules) {
oRules = $.validator.normalizeRule(validator.settings.rules[nElement.name]) || {};
}
return oRules;
},
/**
* 妫€鏌ラ獙璇佽鍒?骞惰繘琛岀浉鍏宠皟鏁淬€佽绠楋紝璇ュ嚱鏁板湪rules涓皟鐢?
* @param {object} oRules Key/value楠岃瘉瑙勫垯瀵硅薄
* @param {dom} nElement 寰呴獙璇佸厓绱?
* @return object 妫€鏌ュ悗鐨勯獙璇佽鍒欏璞?
*/
normalizeRules: function (oRules, nElement) {
// 妫€鏌ュ鐞嗕緷璧栬缃?
$.each(oRules, function (prop, val) {
// 鍊兼槸boolean绫诲瀷,蹇界暐鏄庣‘璁剧疆涓篺alse鐨勯獙璇佽鍒?濡?required:false
if (val === false) {
delete oRules[prop];
return;
}
// 澶勭悊渚濊禆
if (val.param || val.depends) {
var bKeepRule = true;
switch (typeof val.depends) {
case "string":
bKeepRule = !!$(val.depends, nElement.form).length; // 鏄惁瀛樺湪渚濊禆鍏冪礌
break;
case "function":
bKeepRule = val.depends.call(nElement, nElement);
break;
}
if (bKeepRule) {
oRules[prop] = val.param !== undefined ? val.param : true;
} else {
delete oRules[prop];
}
}
});
// 濡傛灉鍙傛暟鍊兼槸鍑芥暟鍒欒皟鐢ㄨ绠?
$.each(oRules, function (prop, val) {
oRules[prop] = $.isFunction(val) ? val(nElement) : val;
});
// 杞崲minlength銆乵axlength銆乵in銆乵ax楠岃瘉鍑芥暟鐨勫弬鏁颁负鏁板€肩被鍨?
$.each(['minlength', 'maxlength', 'min', 'max'], function () {
if (oRules[this]) {
oRules[this] = Number(oRules[this]);
}
});
// 杞崲rangelength銆乺ange楠岃瘉鍑芥暟鐨勫弬鏁颁负鏁板€肩被鍨?
$.each(['rangelength', 'range'], function () {
if (oRules[this]) {
oRules[this] = [Number(oRules[this][0]), Number(oRules[this][1])];
}
});
if ($.validator.autoCreateRanges) {
// 濡傛灉璁剧疆浜唌in鍜宮ax楠岃瘉,鍒欒嚜鍔ㄨ浆鎹负range楠岃瘉,骞跺垹闄ゅ師min銆乵ax楠岃瘉
if (oRules.min && oRules.max) {
oRules.range = [oRules.min, oRules.max];
delete oRules.min;
delete oRules.max;
}
// 濡傛灉璁剧疆浜唌inlength鍜宮axlength楠岃瘉,鍒欒嚜鍔ㄨ浆鎹负rangelength楠岃瘉,骞跺垹闄ゅ師minlength銆乵axlength楠岃瘉
if (oRules.minlength && oRules.maxlength) {
oRules.rangelength = [oRules.minlength, oRules.maxlength];
delete oRules.minlength;
delete oRules.maxlength;
}
}
return oRules;
},
/**
* 杞崲涓€涓瓧绗︿覆楠岃瘉瑙勫垯鎻忚堪涓洪獙璇佽鍒欏璞?濡?
* "required minlength" --> {required:true, minlength: true}
* 璇ュ嚱鏁板湪锛歛ddRuleMethod/rules/init/getStaticRules琚皟鐢?
* @param {string} rule 楠岃瘉瑙勫垯,濡傛灉鏄瓧绗︿覆鍒欒浆鎹?
* @return 楠岃瘉瑙勫垯瀵硅薄
*/
normalizeRule: function (rule) {
if (typeof rule == "string") {
var oRule = {};
$.each(rule.split(/\s/), function () {
oRule[this] = true;
});
rule = oRule;
}
return rule;
},
/**
* 娣诲姞涓€涓嚜瀹氫箟楠岃瘉鏂规硶,渚涘閮ㄨ皟鐢?蹇呴』鍖呭惈涓嬪垪鍙傛暟
* @param {string} sMethedName 楠岃瘉鏂规硶鍚嶇О
* @param {function} fnMethod 楠岃瘉鏂规硶
* @param {string|callback} message 楠岃瘉澶辫触鎻愮ず淇℃伅
*/
addRuleMethod: function (sMethedName, fnMethod, message) {
$.validator.methods[sMethedName] = fnMethod;
$.validator.messages[sMethedName] = message != undefined ? message : $.validator.messages[sMethedName];
if (fnMethod.length < 5) {
$.validator.addClassRules(sMethedName, $.validator.normalizeRule(sMethedName));
}
},
// 楠岃瘉鍣ㄧ殑楠岃瘉鏂规硶,楠岃瘉鏂规硶鍚嶇О鍏ㄩ儴灏忓啓
methods: {
/*
* 楠岃瘉琛ㄥ崟鍏冪礌鏄惁涓虹┖,涓虹┖鍒欒繑鍥瀎alse,鍚﹀垯杩斿洖true,鍏冪礌涓虹┖琛ㄧず:
* 缂栬緫妗嗘湭杈撳叆鏁版嵁銆佸崟閫?澶嶉€夋湭閫変腑銆佷笅鎷夊垪琛ㄦ湭閫夋嫨
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?濡傛灉鏄痵elect鍏冪礌闇€閲嶆柊鐢╦Query鍙栧€?
* @param {dom object} nElement DOM 鍏冪礌
* @param {boolean} bParam 楠岃瘉鍙傛暟
* @return 鏄惁鏈夋晥
*/
required: function (sValue, nElement, bParam) {
// check if dependency is met
if (!this.depend(bParam, nElement))
return "dependency-mismatch";
switch (nElement.nodeName.toLowerCase()) {
case 'select': // select DOM鍏冪礌
// 濡傛灉鍏冪礌鏄閫夊垪琛ㄨ繑鍥炴暟缁?鍚﹀垯杩斿洖瀛楃涓?
var val = $(nElement).val();
return val && val.length > 0;
case 'input': // radio/checkbox DOM鍏冪礌
if (this.checkable(nElement))
return this.getLength(sValue, nElement) > 0;
default:
return $.trim(sValue).length > 0;
}
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏁板瓧瀛楃,绌哄瓧绗︿覆瑙嗕负鏃犳晥
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
digits: function (sValue, nElement) {
return this.optional(nElement) || /^\d+$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹殑闀垮害鏄惁澶т簬绛変簬鏈€灏忛暱搴?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @param {int} iParam 楠岃瘉鍙傛暟(鏈€灏忛暱搴?
* @return 鏄惁鏈夋晥
*/
minlength: function (sValue, nElement, iParam) {
return this.optional(nElement) || this.getLength($.trim(sValue), nElement) >= iParam;
},
/**
* 妫€鏌ュ厓绱犳暟鎹殑闀垮害鏄惁灏忎簬绛変簬鏈€澶ч暱搴?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @param {int} iParam 楠岃瘉鍙傛暟(鏈€澶ч暱搴?
* @return 鏄惁鏈夋晥
*/
maxlength: function (sValue, nElement, iParam) {
return this.optional(nElement) || this.getLength($.trim(sValue), nElement) <= iParam;
},
/**
* 妫€鏌ュ厓绱犳暟鎹殑闀垮害鏄惁鎸囧畾鐨勮寖鍥村唴
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @param {array} aiParam 楠岃瘉鍙傛暟(鏈€灏?鏈€澶ч暱搴?
* @return 鏄惁鏈夋晥
*/
rangelength: function (sValue, nElement, aiParam) {
var iLength = this.getLength($.trim(sValue), nElement);
return this.optional(nElement) || (iLength >= aiParam[0] && iLength <= aiParam[1]);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚﹀ぇ浜庣瓑浜庢寚瀹氬€?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @param {float} fParam 楠岃瘉鍙傛暟(鏈€灏忓€?
* @return 鏄惁鏈夋晥
*/
min: function (sValue, nElement, fParam) {
return this.optional(nElement) || sValue >= fParam;
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚﹀皬浜庣瓑浜庢寚瀹氬€?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @param {float} fParam 楠岃瘉鍙傛暟(鏈€澶у€?
* @return 鏄惁鏈夋晥
*/
max: function (sValue, nElement, fParam) {
return this.optional(nElement) || sValue <= fParam;
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽寚瀹氱殑鑼冨洿鍐?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @param {afloat} afParam 楠岃瘉鍙傛暟(鏈€澶у€?
* @return 鏄惁鏈夋晥
*/
range: function (sValue, nElement, afParam) {
return this.optional(nElement) || (sValue >= afParam[0] && sValue <= afParam[1]);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨凟mail鍦板潃
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
email: function (sValue, nElement) {
return this.optional(nElement) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨刄RL鍦板潃
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
url: function (sValue, nElement) {
return this.optional(nElement) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勭數璇濆彿鐮?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
tel: function (sValue, nElement) {
return this.optional(nElement) || /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勬墜鏈哄彿
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
mobile: function (sValue, nElement) {
return this.optional(nElement) || /^(13|15|18)(\d{9})$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勬棩鏈?鏍煎紡:yyyy-mm-dd
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
date: function (sValue, nElement) {
return this.optional(nElement) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勬棩鏈?鏍煎紡:yyyymmdd
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
dateint: function (sValue, nElement) {
return this.optional(nElement) || /^\d{4}\d{1,2}\d{1,2}$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勬暣鍨嬬被鍨?鍏佽+銆?銆?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
integer: function (sValue, nElement) {
return this.optional(nElement) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勬诞鐐规暟绫诲瀷
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
number: function (sValue, nElement) {
return this.optional(nElement) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勯偖鏀跨紪鐮?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
postalcode: function (sValue, nElement) {
return this.optional(nElement) || /^\d{6}$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勮韩浠借瘉鍙?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @return 鏄惁鏈夋晥
*/
idcard: function (sValue, nElement) {
return this.optional(nElement) || /^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/.test(sValue);
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︿笌鎸囧畾鐨勫厓绱犲€肩浉鍖归厤
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @param {string} sParam 鍖归厤鍏冪礌鏍囪瘑
* @return 鏄惁鏈夋晥
*/
equalto: function (sValue, nElement, sParam) {
var oTarget = $(sParam).unbind(".validate-equalTo").bind("blur.validate-equalTo", function () {
$(nElement).valid();
});
return sValue == oTarget.val();
},
/**
* 妫€鏌ュ厓绱犳暟鎹槸鍚︽槸鏈夋晥鐨勪腑鏂囨眽瀛?
* @param {string} sValue 寰呴獙璇佺殑鍏冪礌鍊?
* @param {dom object} nElement DOM 鍏冪礌
* @returns false/ture
*/
chinese: function (sValue, nElement) {
var regex = /^[\u4E00-\u9FA5]*$/g;
//淇鐏嫄娴忚鍣ㄤ笉鍏煎闂
if ($.browser.mozilla) {
return sValue.match(regex) ? true : false;
} else {
return regex.test(sValue) ? true : false;
}
}
}
});
})(jQuery);
/**
* provides cross-browser focusin and focusout events
* IE has native support, in other browsers, use event caputuring (neither bubbles)
* provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation
* handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target
*/
(function ($) {
// only implement if not provided by jQuery core (since 1.4)
// TODO verify if jQuery 1.4's implementation is compatible with older jQuery special-event APIs
if (!jQuery.event.special.focusin && !jQuery.event.special.focusout && document.addEventListener) {
$.each({
focus: 'focusin',
blur: 'focusout'
}, function (original, fix) {
$.event.special[fix] = {
setup: function () {
this.addEventListener(original, handler, true);
},
teardown: function () {
this.removeEventListener(original, handler, true);
},
handler: function (e) {
arguments[0] = $.event.fix(e);
arguments[0].type = fix;
return $.event.handle.apply(this, arguments);
}
};
function handler(e) {
e = $.event.fix(e);
e.type = fix;
return $.event.handle.call(this, e);
}
});
}
$.extend($.fn, {
validateDelegate: function (delegate, type, handler) {
return this.bind(type, function (event) {
var target = $(event.target);
if (target.is(delegate)) {
return handler.apply(target, arguments);
}
});
}
});
})(jQuery);
(function ($) {
$.fn.autoMail = function (options) {
if ($("#mailBox")) {
$("#mailBox").remove();
}
var opts = $.extend({}, $.fn.autoMail.defaults, options);
return this.each(function () {
var $this = $(this);
var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
var $mailBox = $('
璇烽€夋嫨閭绫诲瀷
' + '绯荤粺鍏ㄥ眬甯搁噺鍖呰瀵硅薄
* 瀛樻斁绯荤粺鍏ㄥ眬甯搁噺锛屾瘡涓父閲忎负KGC瀵硅薄鐨勪竴涓睘鎬э紝杩欎簺灞炴€х殑鍊煎湪杩愯鏈熼棿涓嶅厑璁告敼鍙橈紝鏂板甯搁噺灞炴€ф椂锛? * 鎸夌収銆愬睘鎬у墠缂€_灞炴€у悕: 灞炴€у€硷紝 // 鎻忚堪銆戠殑鏍煎紡瀹氫箟甯搁噺灞炴€у悕绉?鎵€鏈夊父閲忓睘鎬у€艰宸﹀榻愶紝鎵€鏈夋弿杩拌宸﹀璞? */ var KGC = { // 鐧诲綍瀵嗙爜绫诲瀷 PwdType_Query: "1", // 鏌ヨ瀵嗙爜 PwdType_Trade: "0", // 浜ゆ槗瀵嗙爜 // 鐩戞姢浜轰俊鎭惎鐢ㄦ爣蹇? Transactor_None: "0", // 涓嶆樉绀虹洃鎶や汉 Transactor_Used: "1", // 杈撳叆鏄剧ず鐩戞姢浜? Transactor_Must: "2", // 蹇呴』杈撳叆鐩戞姢浜? //鎺ㄨ崘淇℃伅鍚敤鏍囧織 Refer_None: "0", // 涓嶆樉绀烘帹鑽愪俊鎭? Refer_Used: "1", // 杈撳叆鏄剧ず鎺ㄨ崘淇℃伅 Refer_Must: "2", // 蹇呴』杈撳叆鎺ㄨ崘淇℃伅 // 琛ㄦ牸缁熻绫诲瀷 SumType_Sum: "S", // 姹傚拰 SumType_Count: "C", // 璁℃暟 SumType_Avg: "A", // 骞冲潎鍊? SumType_Min: "N", // 鏈€灏忓€? SumType_Max: "X", // 鏈€澶у€? SumType_Text: "T", // 鏂囨湰 // 鍩洪噾绫诲瀷 FT_Normal: "0", // 鑲$エ鍨嬪熀閲? FT_ShortBond: "1", // 鍊哄埜鍨嬪熀閲? FT_Currency: "2", // 璐у竵甯傚満鍩洪噾 FT_Bond: "3", // 娣峰悎鍨嬪熀閲? FT_Professional: "4", // 涓撴埛鍩洪噾 FT_Index: "5", // 鎸囨暟鍨嬪熀閲? FT_QDII: "6", // QDII鍩洪噾 // 鍩洪噾鐘舵€? FS_OnTrade: "0", // 浜ゆ槗 FS_OnIssue: "1", // 鍙戣 FS_IssueSucc: "2", // 鍙戣鎴愬姛 FS_IssueFail: "3", // 鍙戣澶辫触 FS_OffTrade: "4", // 鍩洪噾鍋滄浜ゆ槗 FS_OffBid: "5", // 鍋滄鐢宠喘 FS_OffRedeem: "6", // 鍋滄璧庡洖 FS_OnSetBal: "7", // 鏉冪泭鐧昏 FS_OnDivdent: "8", // 绾㈠埄鍙戞斁 FS_CloseFund: "9", // 鍩洪噾灏侀棴 FS_EndFund: "a", // 鍩洪噾缁堟 // 鏀粯鏂瑰紡 PW_BankCard: "1", // 閾惰鍗℃敮浠? PW_Remit: "2", // 姹囨鏀粯 PW_MoneyFund: "3", // 璐у竵鍩洪噾鏀粯 // 涓氬姟浠g爜 BC_SubCode: "20", // 璁よ喘 BC_BidCode: "22", // 鐢宠喘 BC_RedeemCode: "24", // 璧庡洖 BC_SavePlan: "39", // 瀹氭姇 // 鏀惰垂绫诲瀷 ST_Before: "A", // 鍓嶆敹璐? ST_After: "B", // 鍚庢敹璐? // 璧庡洖鏃舵敹璐圭被鍨嬫樉绀烘柟寮? STDW_None: "0", // 鏄惁鏄剧ず鏀惰垂绫诲瀷 STDW_Before: "1", // 鏀惰垂绫诲瀷鎸夊墠鏀惰垂鏄剧ず STDW_After: "2", // 鏀惰垂绫诲瀷鎸夊悗鏀惰垂鏄剧ず STDW_Support: "3", // 鏄剧ず鏀寔鐨勬敹璐圭被鍨? // 鏍煎紡鍖栧瓧绗︿覆 FMT_Currency: "#,##0.00", // 閲戦鏍煎紡鍖栧寲瀛楃涓? FMT_Float2: "#,##0.##", // 鏍煎紡鍖栨诞鐐规暟:鏈€澶氫袱浣嶅皬鏁?+ 鍗冨垎浣? FMT_Float3: "#,##0.###", // 鏍煎紡鍖栨诞鐐规暟:鏈€澶氫笁浣嶅皬鏁?+ 鍗冨垎浣? FMT_FixedFloat2: "#,##0.00", // 鏍煎紡鍖栨诞鐐规暟:鍥哄畾涓や綅灏忔暟 + 鍗冨垎浣? FMT_FixedFloat3: "#,##0.000", // 鏍煎紡鍖栨诞鐐规暟:鍥哄畾涓変綅灏忔暟 + 鍗冨垎浣? // 椋庨櫓璇勬祴鏂瑰紡 REW_Internal: "0", // 鍐呴儴璇勬祴 REW_External: "1", // 澶栭儴璇勬祴 // 鍩洪噾鍙傝€冭垂鐜囨樉绀烘柟寮? FDW_SingleRow: "0", // 鏍规嵁閲戦鍜屾敮浠樼綉鐐硅繑鍥炲崟涓€璐圭巼 FDW_Table: "1", // 鏄剧ず璐圭巼琛? // 鍏跺畠甯搁噺 GO_True: "Y", // true鐨勫瓧绗︽爣璇? GO_False: "N", // false鐨勫瓧绗︽爣璇? GO_MinorFlag: "1", // 鏈垚骞存爣蹇? GO_IdCardFlag: "0", // 韬唤璇佹爣璇? GO_PayWay: "payway", // 鏀粯鏂瑰紡鍗曢€夋寜閽粍鍚嶇О GO_AmountFormat: "#,##0.00", // 绯荤粺榛樿閲戦鏍煎紡鍖栨帺鐮? //瀹氭姇鎶曡祫鏂瑰紡 IM_ImVarVol: "1", // 鎸夐€掑閲戦鎵f IM_ImFixVal: "2", // 鎸夊悗缁姇璧勯噾棰濅笉鍙? //椋庨櫓绛夌骇鍒ゅ畾鏍囪嚧 RL_Normal: "0", //鐢ㄦ埛椋庨櫓鐘舵€佹甯? RL_Small: "1", //椋庨櫓绛夌骇杩囦綆 RL_UnEvaluate: "2", //鏈瘎浼? RL_StaleDated: "3" //璇勪及杩囨湡 }; /** *绯荤粺鍏敤鍑芥暟灏佽瀵硅薄
*/ if (typeof KGF == "undefined") var KGF = {}; /** * 鑾峰緱椤甸潰瀹藉害鍜岄珮搴? * @returns 椤甸潰瀹介珮瀵硅薄 */ KGF.getPageSize = function () { var iWidth = 0; var iHeight = 0; if (window.innerWidth) { iWidth = window.innerWidth; iHeight = window.innerHeight; } else if (document.compatMode == 'CSS1Compat') { iWidth = document.documentElement.clientWidth; iHeight = document.documentElement.clientHeight; } else if (document.body) { iWidth = document.body.clientWidth; iHeight = document.body.clientHeight; } return {width: iWidth, height: iHeight}; }; // 鍒ゆ柇鍙橀噺鏄惁涓虹┖:null銆乽ndefine銆乶an銆佺┖瀛楃涓? KGF.isEmpty = function (value) { if (value === null || value === undefined || value === "") { return true; } else if ((value instanceof Number || typeof(value) === "number") && isNaN(value)) { return true; } else { return false; } }; // 妫€鏌鏄惁涓虹敱鏁板瓧瀛楃缁勬垚瀛楃涓? KGF.isNumberStr = function (s) { return /[^\d]/g.test(s); }; // 妫€鏌鏄惁涓烘暟瀛椼€佸瓧姣嶅瓧绗︿覆 KGF.isLetterNumber = function (s) { return /[\W]/g.test(s); }; // 妫€鏌鏄惁鏄腑鏂囧瓧绗︿覆 KGF.isChinse = function (s) { var reg = /^[\u4E00-\u9FA5]*$/g; if (KGF.browser.isFirefox()) return s.match(reg); else return reg.test(s); }; // 妫€鏌ヨ緭鍏ユ槸鍚︽槸鏃犳晥瀵嗙爜瀛楃 KGF.isValidPwd = function (s) { return /^[a-zA-Z0-9_@;:'"=+-`!#$%^&*(,<.>?)]/.test(s); }; // 鍒ゆ柇杈撳叆鐨勫勾浠芥槸鍚︽槸闂板勾 KGF.isLeapYear = function (iYear) { if (iYear <= 0) return false; return (iYear % 4 == 0 && iYear % 100 != 0) || (iYear % 400 == 0); }; /** * 绠€鍗曟鏌ヨ緭鍏ョ殑韬唤璇佸彿鏄惁鏃犳晥锛屾湁鏁堣繑鍥瀎alse锛屾棤鏁堣繑鍥瀟rue */ KGF.isValidIDCardNo = function (code) { var Errors = new Array("true", "韬唤璇佸彿鐮佷綅鏁颁笉瀵?蹇呴』鏄?5浣嶆垨鑰?8浣?", "韬唤璇佸彿鐮佸嚭鐢熷勾鏈堟棩鏍煎紡涓嶅!", "韬唤璇佸彿鐮佹牎楠屼綅閿欒!", "韬唤璇佸湴鍖洪潪娉?", "15浣嶈韩浠借瘉鍙风爜鐢辨暟瀛楃粍鎴?", "18浣嶈韩浠借瘉鍙风爜鍓?7浣嶇敱鏁板瓧缁勬垚,绗?8浣嶅彲浠ユ槸鏁板瓧鎴栬€呭ぇ鍐橽"X\"!"); if (code.length != 15 && code.length != 18) {// 韬唤璇侀暱搴︿笉姝g‘ return Errors[1]; } var area = { 11: "鍖椾含", 12: "澶╂触", 13: "娌冲寳", 14: "灞辫タ", 15: "鍐呰挋鍙?, 21: "杈藉畞", 22: "鍚夋灄", 23: "榛戦緳姹?, 31: "涓婃捣", 32: "姹熻嫃", 33: "娴欐睙", 34: "瀹夊窘", 35: "绂忓缓", 36: "姹熻タ", 37: "灞变笢", 41: "娌冲崡", 42: "婀栧寳", 43: "婀栧崡", 44: "骞夸笢", 45: "骞胯タ", 46: "娴峰崡", 50: "閲嶅簡", 51: "鍥涘窛", 52: "璐靛窞", 53: "浜戝崡", 54: "瑗胯棌", 61: "闄曡タ", 62: "鐢樿們", 63: "闈掓捣", 64: "瀹佸", 65: "鏂扮枂", 71: "鍙版咕", 81: "棣欐腐", 82: "婢抽棬", 91: "鍥藉" } var Y, JYM; var S, M; var ereg; var idcard_array = new Array(); idcard_array = code.split(""); // 鍦板尯妫€楠? if (area[parseInt(code.substr(0, 2))] == null) return Errors[4]; // 韬唤鍙风爜浣嶆暟鍙婃牸寮忔楠? switch (code.length) { case 15: if (!/^[0-9]{15}$/.test(code)) { return Errors[5]; } var sBirthday = "19" + code.substr(6, 2) + "-" + Number(code.substr(8, 2)) + "-" + Number(code.substr(10, 2)); var d = new Date(sBirthday.replace(/-/g, "/")); var flag = (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())); if (!flag) return Errors[0]; else return Errors[2]; break; case 18: if (!/^[0-9]{17}([0-9X])$/.test(code)) { return Errors[6]; } var sBirthday = code.substr(6, 4) + "-" + Number(code.substr(10, 2)) + "-" + Number(code.substr(12, 2)); var d = new Date(sBirthday.replace(/-/g, "/")); var flag = (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())); if (!flag) {// 娴嬭瘯鍑虹敓鏃ユ湡鐨勫悎娉曟€? // 璁$畻鏍¢獙浣? S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3; Y = S % 11; M = "F"; JYM = "10X98765432"; M = JYM.substr(Y, 1); // 鍒ゆ柇鏍¢獙浣? if (M == idcard_array[17]) return Errors[0];// 妫€娴婭D鐨勬牎楠屼綅 else return Errors[3]; } else return Errors[2]; break; default: return Errors[1]; break; } }; /** * 浠庤韩浠借瘉鍙风爜涓彇鍑虹敓鏃? */ KGF.getBirthdayFormIdNo = function (sIdNo) { //15浣嶅彿鐮? if (sIdNo.length == 15) return "19" + sIdNo.substr(6, 6); //18浣嶅彿鐮? return sIdNo.substr(6, 8); }; /** * 鍒ゆ柇鏄惁鎴愬勾浜? */ KGF.isAdult = function (sBirthday, sServerDate) { var year = sServerDate.substr(0, 4); var month = sServerDate.substring(4, 2); var day = sServerDate.substring(6, 2); var birthyear = sBirthday.substr(0, 4); var birthmonth = sBirthday.substr(4, 2); var birthday = sBirthday.substr(6, 2); var flag = year - birthyear; return flag > 18 || ((flag == 18) && (birthday < month)) || ((flag == 18) && (birthday == month) && (birthday < day)); }; /** * 杞崲boolean绫诲瀷涓篿nt */ KGF.boolToInt = function (bValue) { return bValue ? 1 : 0; }; /** * 瀛楃涓茶浆鎹负鏁板€硷紝濡傛灉sValue涓嶆槸鏁板€硷紝鍒欒繑鍥瀗Default */ KGF.strToNumber = function (sValue, nDefault) { var fValue = Number(sValue); return isNaN(sValue) ? nDefault : fValue; }; /** * 妫€鏌alue1鏄惁涓簄ull銆乽ndefined銆丯aN銆丗inite锛屽鏋滄槸鍒欒浆鎹负value2锛屽惁鍒欒繑鍥炲師鍊? */ KGF.checkEmpty = function (value1, value2) { return (value1 == null) ? value2 : value1; }; /** * 璺宠浆鍒版寚瀹歎RL */ KGF.gotoPage = function (url) { window.location.href = encodeURI(url); }; KGF.gotoPageEx = function (sMenuId, url, bIsIG) { if (top != window) { if (top.oFrame) top.oFrame.loadPage(sMenuId, url); } else { if (bIsIG) { top.oFrame.loadPage(sMenuId, url); } else { KGF.gotoPage(url); } } }; /** * 鎵撳紑涓€涓獥浣?鏄剧ずurl * features: 涓€涓彲閫夌殑瀛楃涓诧紝澹版槑浜嗘柊绐楀彛瑕佹樉绀虹殑鏍囧噯娴忚鍣ㄧ殑鐗瑰緛銆? */ KGF.openDlg = function (url, features) { window.open(url, "", features); }; /** * 鏋勫缓URL鏌ヨ涓? * @param oData 鏁版嵁婧愶紝鍙互鏄璞★紝ListMap * @param aParams 鍙傛暟鍚嶆暟缁? * @return 杩斿洖鏋勫缓鐨勬煡璇覆锛屼笉甯︼紵 */ KGF.buildUrlSearch = function (oData, aParams) { if (!(aParams instanceof Array) || aParams.length <= 0) return ""; // 澶勭悊绗竴涓? var i, sSearch = aParams[0] + "="; if (oData instanceof ListMap) { sSearch += oData.get(aParams[0]); for (i = 1; i < aParams.length; i++) { sSearch += "&" + aParams[i] + "=" + oData.get(aParams[i]); } } else if (oData instanceof Object || typeof oData == "object") { sSearch += oData[aParams[0]]; for (i = 1; i < aParams.length; i++) { sSearch += "&" + aParams[i] + "=" + oData[aParams[i]]; } } else { sSearch = ""; KDlg.info("鏃犳晥鐨勬暟鎹被鍨嬶細oData"); } return sSearch; }; /** * 鑾峰彇璇佷功鏌ヨ涓? * @returns {String} */ KGF.getSecurityUrlParam = function () { //TODO }; /** * 鑾峰彇瀵硅薄灞炴€у€煎垪琛? * @param {object} obj * @param {array|string} aPropertyNames 寰呰幏鍙栧睘鎬у€肩殑灞炴€у悕绉版暟缁?蹇呴』 * @return {array} 灞炴€у€兼暟缁? */ KGF.getObjectPropVal = function (obj, aPropertyNames) { var aValue = []; if (obj) { if ($.isArray(aPropertyNames)) { // 鏁扮粍锛屽涓睘鎬? for (var i = 0; i < aPropertyNames.length; i++) { aValue.push(obj[aPropertyNames[i]]); } } else { // 瀛楃涓诧紝涓€涓睘鎬? aValue.push(obj[aPropertyNames]); } } return aValue; }; /** * 妫€鏌ュ璞℃暟缁勪腑鏄惁瀛樺湪鎸囧畾鐨勫璞? * @param aoData 涓€缁存暟缁勫璞? * @param sKeyName 瀵硅薄閿€煎睘鎬у悕绉版暟缁? * @param sKeyValue 瀵硅薄閿€煎睘鎬у€兼暟缁? * @returns true/false */ KGF.checkObjectExits = function (aoData, aKeyName, aKeyValue) { if (aoData instanceof Array && aKeyName.length == aKeyValue.length) { var i, j, bFlag; var iCount = aoData.length; for (i = 0; i < iCount; i++) { bFlag = true; for (j = 0; j < aKeyName.length; j++) { if (aoData[i][aKeyName[j]] != aKeyValue[j]) { bFlag = false; break; } } if (bFlag) return true; } return false; } else { return false; } }; /** * 浠庢暟缁勪腑鏌ユ壘瀵硅薄骞惰繑鍥? * @param aoData 涓€缁存暟缁勫璞? * @param sKeyName 瀵硅薄閿€煎睘鎬у悕绉版暟缁? * @param sKeyValue 瀵硅薄閿€煎睘鎬у€兼暟缁? * @returns 杩斿洖瀵硅薄 */ KGF.getObjectFromArray = function (aoData, aKeyName, aKeyValue) { if (aoData instanceof Array && aKeyName.length == aKeyValue.length) { var i, j, bFlag; var iCount = aoData.length; for (i = 0; i < iCount; i++) { bFlag = true; for (j = 0; j < aKeyName.length; j++) { if (aoData[i][aKeyName[j]] != aKeyValue[j]) { bFlag = false; break; } } if (bFlag) return aoData[i]; } return undefined; } return undefined; }; /** * 鐢ㄦ暟鎹瓧鍏竤DictName缈昏瘧鏁扮粍涓墍鏈夊璞℃寚瀹氬睘鎬?srong>sPropertyName鐨勫€硷紝 * 骞跺皢缈昏瘧鍊间綔涓哄璞℃柊灞炴€NewPropertyName鐨勫睘鎬у€笺€? * @param {array} aoData 瀵硅薄鏁扮粍 * @param {ListMap} oDict 鏁版嵁瀛楀吀鍒楄〃 * @param {string} sPropertyName 缈昏瘧鐨勫睘鎬у悕绉? * @param {string} sNewPropertyName 瀛樺偍缈昏瘧鍊肩殑灞炴€у悕绉? */ KGF.transferObjectArrayProperty = function (aoData, oDict, sPropertyName, sNewPropertyName) { var i, o, v, iCount = aoData.length; for (i = 0, len = iCount; i < len; i++) { o = aoData[i]; v = o[sPropertyName]; o[sNewPropertyName] = oDict.get(v, v); } }; /** * 灏嗕汉姘戝竵閲戦杞崲涓哄ぇ鍐? * @param fAmount * @returns {sring} */ KGF.capitalRMB = function (fAmount, sSuffix) { //瀛楃闀垮害 function LengthB(str) { var p1 = new RegExp('%u..', 'g'); var p2 = new RegExp('%.', 'g'); return escape(str).replace(p1, '').replace(p2, '').length; } var low; var i, k, j, l_xx1; var cap = "", xx1, unit; var a = ("" + fAmount).replace(/(^0*)/g, "").split("."); var digits = "闆跺9璐板弫鑲嗕紞闄嗘煉鎹岀帠"; var units = "浠?鐐规嬀浣颁粺涓囨嬀浣颁粺浜挎嬀浣颁粺涓囨嬀浣颁粺"; var digit; low = parseFloat(fAmount); if (isNaN(low)) { return ""; } xx1 = Math.round(low * 100.0) + ""; l_xx1 = xx1.length; for (i = 0; i < l_xx1; i++) { j = l_xx1 - 1 - i; unit = units.substr(j, 1); // 鐢熸垚澶у啓鍗曚綅锛屽嵆'..浠芥嬀...' k = parseInt(xx1.substr(i, 1)); digit = digits.substr(k, 1); // 鐢熸垚澶у啓鏁板瓧, 鍗?闆跺9璐板弫...' cap = cap + digit + unit; } cap = cap.replace(" ", ""); cap = cap.replace(/闆舵嬀|闆朵桨|闆朵粺/g, "闆?); cap = cap.replace(/闆?/g, "闆?); cap = cap.replace(/闆朵嚎/g, "浜?); cap = cap.replace(/闆朵竾/g, "涓?); cap = cap.replace(/闆剁偣/g, "鐐?); cap = cap.replace(/闆朵唤/g, "浠?); cap = cap.replace(/浜夸竾/g, "浜?); cap = cap.replace(/^澹规嬀/, "鎷?); cap = cap.replace(/鐐逛唤$/, "浠芥暣"); cap = cap.replace(/浠芥暣$/, ""); cap = cap.replace(/闆?/, ""); cap = cap.replace(/浠?/, ""); if (a.length > 1 && LengthB(a[1]) > 2) { cap = '灏忔暟鐐逛綅鏁颁笉搴旇秴杩?浣?; return cap; } if (a.length > 1 && LengthB(a[0]) == 0 && a[1].charAt(0) != '0') { cap = cap.replace("", "闆剁偣"); } if (a.length > 1 && LengthB(a[0]) == 0 && a[1].charAt(0) == '0') { cap = cap.replace("", "闆剁偣闆?); } if (cap != "" || cap.length > 0) { cap = cap + sSuffix; } return cap; }; /** * 鏍煎紡鍖栨暟瀛? * @param fData 寰呮牸寮忕殑鏁板瓧 * @param sFormat 鏍煎紡鍖栨帺鐮侊紝鏀寔锛?锛?.绛夊瓧绗︼紝鍙€夛紝鍒欓粯璁GC.GO_AmountFmt锛? * 鈥?鈥欎竴浣嶆暟瀛楋紝濡傛灉鏄暟瀛楁湯灏句笖鏄?鍒欎笉鏄剧ず锛屸€橈紝鈥欏垎浣嶆爣蹇楋紝鈥?鈥欎竴浣嶆暟瀛楋紝鈥?鈥欏皬鏁扮偣锛屼緥1234567.1204鏍煎紡鍖栧涓嬶細 * #,###锛?,###.#0锛? 1,234,567 #,###.0# 1,234,567.12 * #,###.## 1,234,567.12 #,###.0## 1,234,567.12 * #,###.00 1,234,567.12 */ KGF.fmtNumber = function (fData, sFormat) { var arrTemp; var sInt, sFloat, sFmt, sSign; var fmtInt = "", fmtFloat = ""; sSign = fData >= 0 ? "" : "-"; fData = Math.abs(fData); var sData = fData.toString(); if (arguments.length == 1) { sFormat = KGC.GO_AmountFormat; } arrTemp = sFormat.match(/[\#\,0\.]+/); if (arrTemp != null) { sFmt = arrTemp[0]; } else { sFmt = KGC.GO_AmountFormat; } var reDecimal = /\./; if (reDecimal.test(sFmt)) { arrTemp = sFmt.split("."); fmtInt = arrTemp[0]; fmtFloat = arrTemp[1]; } else { fmtInt = sFmt; } if (reDecimal.test(sData)) { if (fmtFloat != "") { arrTemp = sData.split("."); var iPow10 = Math.pow(10, fmtFloat.length); var fTemp = Math.round(parseFloat("0." + arrTemp[1]) * iPow10) / iPow10; sInt = (Math.floor(fData) + Math.floor(fTemp)).toString(); if (fTemp == 0) sFloat = "0"; else sFloat = fTemp.toString().split(".")[1]; } else { sInt = Math.round(fData).toString(); sFloat = ""; } } else { sInt = sData; sFloat = ""; } if (fmtInt != "") { var iCommaLen = null; var iZeroCount = fmtInt.match(/0*$/)[0].length; if (/,/g.test(fmtInt)) { iCommaLen = fmtInt.match(/,[^,]*/)[0].length - 1; } var reg = new RegExp("(\\d{" + iCommaLen + "})", "g"); if (sInt.length < iZeroCount) { sInt = new Array(iZeroCount + 1).join("0") + sInt; sInt = sInt.substr(sInt.length - iZeroCount, iZeroCount); } if (iCommaLen > 0) { var idx = sInt.length % iCommaLen; sInt = sInt.substr(0, idx) + sInt.substring(idx).replace(reg, ",$1"); } sInt = sInt.replace(/^,/, ""); } if (fmtFloat != "") { var iZeroCount = fmtFloat.match(/^0*/)[0].length; if (sFloat.length < iZeroCount) { sFloat = sFloat + new Array(iZeroCount + 1).join("0"); if (fmtFloat.length > iZeroCount) { var sTemp1 = sFloat.substring(0, iZeroCount); var sTemp2 = sFloat.substring(iZeroCount, fmtFloat.length); sFloat = sTemp1 + sTemp2.replace(/0*$/, ""); } else { sFloat = sFloat.substring(0, iZeroCount); } } else { sFloat = sFloat.substring(0, fmtFloat.length); } } else { sFloat = ""; } if (sFloat == "") { sData = sInt; } else { sData = sInt + "." + sFloat; } if (sFormat != sFmt) { sData = sFormat.replace(sFmt, sData); } return sSign + sData; }; /** * 鏍煎紡鍖栨暣鍨嬫棩鏈?浠呮鏌ヤ綅鏁板拰瀛楃鏈夋晥鎬э紝濡傛灉鏃犳晥杩斿洖 * @param date 鍙互鏄疍ate銆乮nt銆乻tring绫诲瀷 * @param sSplit 鍒嗛殧绗?榛樿'-','CN'琛ㄧず鐢ㄥ勾鏈堟棩鍒嗛殧 * @returns string */ KGF.fmtDate = function (date, sSplit) { var sDate, sY, sM, sD; if (jQuery.type(date) === "date") { sY = date.getFullYear(); sM = date.getMonth() + 1 + ""; if (sM.length === 1) { sM = "0" + sM; } sD = date.getDate() + ""; if (sD.length === 1) sD = "0" + sD; } else { sDate = date.toString(); if (/^\d{8}$/.test(sDate)) { sY = sDate.substring(0, 4); sM = sDate.substring(4, 6); sD = sDate.substring(6, 8); } else return "-"; } if (sSplit === "CN") { sDate = sY + "骞? + sM + "鏈? + sD + "鏃?; } else { if (sSplit === "" || sSplit == null) { sSplit = "-"; } sDate = sY + sSplit + sM + sSplit + sD; } return sDate; }; /** * 鏍煎紡鍖栨暣鍨嬫椂闂?浠呮鏌ヤ綅鏁版湁鏁堟€? * @param time 鍙互鏄疍ate銆乮nt銆乻tring绫诲瀷 * @param sSplit 鍒嗛殧绗?榛樿':','CN'琛ㄧず鐢ㄦ椂鍒嗙鍒嗛殧 * @returns string */ KGF.fmtTime = function (time, sSplit) { var sTime, sH, sM, sS; if (jQuery.type(time) === "date") { sH = time.getHours(); if (sH.length === 1) { sH = "0" + sH; } sM = time.getMinutes(); if (sM.length === 1) { sM = "0" + sM; } sS = time.getSeconds(); if (sS.length === 1) { sS = "0" + sS; } } else { sTime = time.toString(); if (sTime.length === 5) { sTime = "0" + sTime; } if (/^\d{6}$/.test(sTime)) { sH = sTime.substring(0, 2); sM = sTime.substring(2, 4); sS = sTime.substring(4, 6); } else if (/^\d{2}:\d{2}:\d{2}$/.test(sTime)) { sH = sTime.substring(0, 2); sM = sTime.substring(3, 5); sS = sTime.substring(6, 8); } else { return "-"; } } if (sSplit == "CN") { sTime = sH + "鏃? + sM + "鍒? + sS + "绉?; } else { if (sSplit == "" || sSplit == null) { sSplit = ":"; } sTime = sH + sSplit + sM + sSplit + sS; } return sTime; }; /** * 鑾峰彇椤圭洰鏍硅矾寰? * @returns webpath */ KGF.getRootPathEx = function () { return KGP.WEBPATH; }; KGF.getRootPath = function () { var pathName = window.location.pathname.substring(1); var webName = pathName == '' ? '' : pathName.substring(0, pathName.indexOf('/')); return window.location.protocol + '//' + window.location.host + '/' + webName; }; /** *鍙墿灞曟暟鎹」鍒楄〃绫伙紙ListMap锛?/p> * 璇ョ被鐢ㄤ簬瀛樻斁鏁版嵁椤瑰垪琛紝姣忎釜鏁版嵁椤规槸涓€涓璞★紝鎵€鏈夋暟鎹」瀵硅薄涓哄悓涓€绫诲瀷瀵硅薄锛屾湁鐩稿悓鐨勫睘鎬э紝 * 鍦ㄨ繖浜涘睘鎬т腑鏈変竴涓储寮曞睘鎬э紙榛樿涓簁ey锛夊拰榛樿鍊煎睘鎬э紙榛樿涓簐alue锛夛紝閫氳繃绱㈠紩灞炴€у彲鏌ユ壘瀹? * 浣嶈鏁版嵁椤瑰璞★紝绱㈠紩灞炴€у拰榛樿鍊煎睘鎬у彲浠ラ噸鏂版寚瀹氥€? * * 璇ョ被鏋勯€犲櫒鏀寔3绉嶅弬鏁扮被鍨嬭皟鐢紝鍏跺尯鍒湪浜庡垪琛ㄤ腑鏁版嵁瀵硅薄鐨勫睘鎬у悕绉颁笉鍚岋細 * 1銆乶ew ListMap() * 鍒楄〃涓殑鏁版嵁瀵硅薄浠呭寘鍚睘鎬э細key銆乿alue锛岀储寮曞睘鎬т负key锛岄粯璁ゅ€煎睘鎬т负value * 2銆乶ew ListMap(sKeyName) * 鍒楄〃涓殑鏁版嵁瀵硅薄鍖呭惈灞炴€э細sKeyName銆乿alue锛岀储寮曞睘鎬т负sKeyName锛岄粯璁ゅ€煎睘鎬т负value * 3銆乶ew ListMap(oParent1, ...) * 鍒楄〃涓殑鏁版嵁瀵硅薄鍖呭惈灞炴€э細key銆乿alue銆佸苟涓斿寘鍚玱Parent1, ...绛夊璞′腑鐨勫睘鎬э紝绱㈠紩灞炴€т负key锛? * 榛樿鍊煎睘鎬т负value * 4銆乶ew ListMap(sKeyName, sValueName, oParent1,...) * 鍒楄〃涓殑鏁版嵁瀵硅薄鍖呭惈灞炴€э細sKeyName銆乻ValueName浠ュ強oParent1锛?..绛夊璞′腑鐨勫睘鎬э紝 绱㈠紩灞炴€? * 涓簊KeyName锛岄粯璁ゅ€煎睘鎬т负sValueName */ function ListMap() { var sKeyName = "key"; // 绱㈠紩灞炴€у悕绉? var sValueName = "value"; // 榛樿鍊煎睘鎬у悕绉? var oParent = {}; // 鏁版嵁椤筂apItem.prototype鐨勫€硷紙鏁版嵁椤瑰璞$殑鐖剁被锛? var aoMap = []; // 瀛樻斁鏁版嵁椤瑰璞$殑鏁扮粍 // 鏍规嵁鍏ュ弬鏋勫缓鏁版嵁椤瑰璞$殑鐖剁被锛堝悎骞舵墍鏈夋暟鎹璞$殑灞炴€у埌鐖剁被涓級 var iBegin = null; var iArgLen = arguments.length; if (jQuery.type(arguments[0]) == "string") { sKeyName = arguments[0]; if (jQuery.type(arguments[1]) == "string") { if (iArgLen > 0) { sValueName = arguments[1]; iBegin = 2; } else iBegin = 1; } for (var i = iBegin; i < iArgLen; i++) { if (jQuery.type(arguments[i]) == "object") jQuery.extend(oParent, arguments[i]); } } var o = null; eval("o={'" + sKeyName + "':'','" + sValueName + "':''}"); o.getKey = function () { return this[sKeyName]; }; o.getValue = function () { return this[sValueName]; }; jQuery.extend(oParent, o); /** * 鍐呴儴鏁版嵁椤圭被锛岃绫荤户鎵夸簬oParent */ function MapItem() { } MapItem.prototype = oParent; /** * 鏍规嵁绱㈠紩灞炴€х殑灞炴€у€兼煡鎵炬暟鎹」 * @param vKey 鏁版嵁椤圭储寮曞睘鎬у€? * @returns 杩斿洖鍏剁储寮曚綅缃紝鏈壘鍒拌繑鍥?1 */ this.find = function (vKey) { for (var i = 0; i < aoMap.length; i++) { if (aoMap[i][sKeyName] == vKey) return i; } return -1; }; /** * 閫氳繃鏁版嵁椤瑰湪鏁扮粍涓殑绱㈠紩鑾峰彇鏄犲皠椤癸紝濡傛灉绱㈠紩瓒婄晫锛岃繑鍥瀠ndefined * @param {number} iIndex 鏁版嵁椤圭储寮? * @returns {object} 鏁版嵁椤瑰璞? */ this.items = function (iIndex) { if (KGF.isEmpty(iIndex)) return undefined; if (iIndex < aoMap.length && iIndex >= 0) return aoMap[iIndex]; return undefined; }; /** * 閫氳繃绱㈠紩灞炴€у€艰幏鍙栬鏁版嵁椤圭殑榛樿灞炴€у€硷紝鏈壘鍒拌繑鍥瀠ndefined鎴杁efaultValue * @param vKey 鏁版嵁椤圭储寮曞睘鎬у€? * @param vDefaultValue 鏈壘鍒伴粯璁よ繑鍥炲€? * @returns 榛樿灞炴€у€? */ this.get = function (vKey, vDefaultValue) { if ((!vKey) && (vKey != "")) return vDefaultValue; var i = this.find(vKey); return i >= 0 ? aoMap[i][sValueName] : vDefaultValue; }; /** * 閫氳繃绱㈠紩灞炴€у€艰幏鍙栬鏁版嵁椤圭殑鎸囧畾灞炴€х殑灞炴€э紝鏈壘鍒拌繑鍥瀠ndefined鎴杁efaultValue * @param vKey 鏁版嵁椤圭储寮曞睘鎬у€? * @param {string} sPropName 杩斿洖鏁版嵁椤硅灞炴€х殑灞炴€у€? * @param vDefaultValue 鏈壘鍒伴粯璁よ繑鍥炲€? * @returns 鎸囧畾灞炴€у€? */ this.getValue = function (vKey, sPropName, vDefaultValue) { if ((!vKey) && (vKey != "")) return vDefaultValue; var i = this.find(vKey); if (i >= 0) { var item = aoMap[i]; return item.hasOwnProperty(sPropName) ? item[sPropName] : vDefaultValue; } else return vDefaultValue; }; /** * 閫氳繃绱㈠紩灞炴€у€艰幏鍙栬鏁版嵁椤瑰苟杩斿洖锛屾湭鎵惧埌杩斿洖undefined鎴杁efaultValue * @param vKey 鏁版嵁椤圭储寮曞睘鎬х殑灞炴€у€? * @param vDefaultValue 鏈壘鍒伴粯璁よ繑鍥炲€? * @returns 鏁版嵁椤瑰璞? */ this.getItem = function (vKey, vDefaultValue) { if ((!vKey) && (vKey != "")) return vDefaultValue; var i = this.find(vKey); return i >= 0 ? aoMap[i] : vDefaultValue; }; /** * 璁剧疆鎸囧畾鏁版嵁椤归粯璁ゅ睘鎬х殑灞炴€у€硷紝濡傛灉璇ユ暟鎹」涓嶅瓨鍦ㄥ垯娣诲姞 * @param vKey 鏁版嵁椤圭储寮曞睘鎬у€? * @param value 榛樿灞炴€х殑灞炴€у€? */ this.set = function (vKey, value) { if ((!vKey) && (vKey != "")) return; var i = this.find(vKey); if (i >= 0) aoMap[i][sValueName] = value; else { var item = new MapItem(); item[sKeyName] = vKey; item[sValueName] = value; aoMap.push(item); } }; /** * 杩斿洖鎸囧畾绱㈠紩浣嶇疆鐨勬暟鎹」鐨勭储寮曞睘鎬у€硷紝濡傛灉绱㈠紩瓒婄晫锛岃繑鍥瀡DefaultValue * @param {number} iIndex 鏁版嵁瀵硅薄绱㈠紩 * @param vDefaultValue 鏈壘鍒伴粯璁よ繑鍥炲€? * @returns 绱㈠紩灞炴€у€? */ this.getKey = function (iIndex, vDefaultValue) { var o = this.items(iIndex); if (o) { return o[sKeyName]; } else return vDefaultValue; }; /** * 璁剧疆鎸囧畾鏁版嵁椤规寚瀹氬睘鎬х殑灞炴€у€硷紝濡傛灉璇ユ暟鎹」涓嶅瓨鍦ㄥ垯娣诲姞 * @param vKey 鏁版嵁椤圭储寮曞睘鎬у€? * @param {string} sPropName 杩斿洖鏁版嵁椤硅灞炴€х殑灞炴€у€? * @param value 灞炴€у€? */ this.setValue = function (vKey, sPropName, value) { if ((!vKey) && (vKey != "")) return; var i = this.find(vKey); if (i >= 0) aoMap[i][sPropName] = value; else { var item = new MapItem(); item[sKeyName] = vKey; //if (oParent.hasOwnProperty(sPropName)) item[sPropName] = value; aoMap.push(item); } }; /** * 璁剧疆鏇存柊鏁版嵁椤癸紝涓嶅瓨鍦ㄥ垯娣诲姞 * @param {MapItem} o 鏁版嵁椤瑰璞? */ this.setItem = function (o) { if (KGF.isEmpty(o)) return; // 妫€鏌ヨ瀵硅薄鏄惁鍖呭惈绱㈠紩灞炴€у悕绉帮紝涓嶅瓨鍦ㄥ垯閫€鍑? var vKey = undefined; if (o.hasOwnProperty(sKeyName)) vKey = o[sKeyName]; if ((!vKey) && (vKey != "")) return; var item; var i = this.find(vKey); if (i >= 0) { item = aoMap[i]; } else { item = new MapItem(); aoMap.push(item); } // 璧嬪€? var prop = null; for (prop in o) { if (oParent.hasOwnProperty(prop)) { item[prop] = o[prop]; } } }; /** * 绉婚櫎鎸囧畾鐨勬暟鎹」 * @param vKey 鏁版嵁椤圭储寮曞睘鎬у€? */ this.del = function (vKey) { if ((!vKey) && (vKey != "")) return; var i = this.find(vKey); if (i >= 0) aoMap.splice(i, 1); }; /** * 杩斿洖鍒楄〃涓暟鎹」鐨勬暟鐩? */ this.count = function () { return aoMap.length; }; /** * 灏唎List涓殑鏁版嵁椤规坊鍔犲埌褰撳墠鍒楄〃涓紝oData涓篖istMap绫诲瀷鎴栧璞$被鍨? * @param {ListMap|object} oData 鏁版嵁椤瑰垪琛? */ this.assigned = function (oData) { if (oData instanceof ListMap) { var iCount = oData.count(); for (var i = 0; i < iCount; i++) { this.setItem(oData.items(i)); } } else if (typeof(oData) === "object") { for (var sProp in oData) { this.set(sProp, oData[sProp]); } } else throw new Error("oData type error."); }; /** * 瑙f瀽瀛楃涓诧紝鎻掑叆鍒板垪琛ㄤ腑锛屽瓧绗︿覆鏍煎紡锛歬ey1|value1;key2|value2;... * @param {string} sValue * @param {string} sSplitChar 姣忓key/valu涔嬮棿鐨勫垎闅旂锛屽彲閫夛紝榛樿涓哄垎鍙?;) */ this.parse = function (sValue, sSplitChar) { if (arguments.length == 1) { sSplitChar = ";"; } var aItem; var aValue = sValue.split(sSplitChar); for (var i = 0; i < aValue.length; i++) { aItem = aValue[i].split("|"); this.set(aItem[0], aItem[1]); } }; /** * 妫€鏌ユ暟鎹」鍒楄〃鏄惁涓虹┖ * @returns {boolean} false-闈炵┖锛宼rue-绌? */ this.isEmpty = function () { return aoMap.length <= 0; }; /** * 娓呴櫎鏄犲皠鍒楄〃 */ this.clear = function () { aoMap.length = 0; }; /** * 灏嗗垪琛ㄩ」涓殑鏁版嵁杞崲涓篔SON瀵硅薄锛岃浆鎹㈠師鍒欙細 * 浠ョ储寮曞睘鎬х殑灞炴€у€间负瀵硅薄灞炴€у悕锛岄粯璁ゅ睘鎬х殑灞炴€у€间负瀵硅薄灞炴€у€硷紝 * 灏嗗垪琛ㄤ腑鐨勬暟鎹」瀵硅薄鐨勭储寮曞睘鎬у拰榛樿灞炴€ц浆鎹负JSON瀵硅薄 */ this.toJSON = function () { var oItem; var oJSON = {}; for (var i = 0; i < this.count(); i++) { oItem = this.items(i); oJSON[oItem[sKeyName]] = oItem[sValueName]; } return oJSON; }; /** * 灏嗗垪琛ㄩ」涓殑鏁版嵁杞崲涓篔SON瀵硅薄 * Key鍔犱笂"param."鍓嶇紑 */ this.toParamJSON = function () { var oItem; var oJSON = {}; for (var i = 0; i < this.count(); i++) { oItem = this.items(i); oJSON["param." + oItem[sKeyName]] = oItem[sValueName]; } return oJSON; }; /** * 浠ョ储寮曞睘鎬х殑灞炴€у€间负鍙傛暟鍚嶏紝榛樿灞炴€х殑灞炴€у€间负鍙傛暟鍊硷紝灏嗗垪琛ㄤ腑鐨勬暟鎹」瀵硅薄杞崲涓篣RL鏌ヨ瀛楃涓诧紝 * 杩斿洖鏌ヨ涓蹭腑棣栧熬涓嶅甫锛熷拰&锛涘鏋滃垪琛ㄤ负绌哄垯杩斿洖绌哄瓧绗︿覆"" * @returns {string} URL鏌ヨ涓? */ this.toUrlParamStr = function () { var oItem; var sParams = ""; var iCount = this.count(); var sKeyName = this.getKeyName(); var sValueName = this.getValueName(); // 鍙栫涓€涓弬鏁? if (iCount > 0) { oItem = this.items(0); sParams = oItem[sKeyName] + "=" + oItem[sValueName]; } else { return "".toString(); } // 鍙栧墿浣欏弬鏁? for (var i = 1; i < iCount; i++) { oItem = this.items(i); sParams += "&" + oItem[sKeyName] + "=" + oItem[sValueName]; } return sParams.toString(); }; /** * 妫€鏌istMap涓殑鏁版嵁椤瑰璞℃槸鍚︽湁鎸囧畾鐨勫睘鎬у悕绉? * @param {string} sPropertyName 灞炴€у悕绉? * @returns {boolean} false-涓嶅寘鍚紝true-鍖呭惈 */ this.itemHasProperty = function (sPropertyName) { return (oParent.hasOwnProperty(sPropertyName)); }; /** * 杩斿洖鏁版嵁椤圭殑绱㈠紩灞炴€у悕绉? * @returns 灞炴€у悕绉? */ this.getKeyName = function () { return sKeyName; }; /** * 杩斿洖鏁版嵁椤圭殑榛樿鍊肩殑灞炴€у悕绉? * @returns 灞炴€у悕绉? */ this.getValueName = function () { return sValueName; }; } /** *
Ajax璋冪敤杩斿洖缁撴灉绫?/p> * 灏佽Ajax璋冪敤杩斿洖缁撴灉锛屽寘鎷垚鍔熷け璐ヤ俊鎭強鏁版嵁銆? */ function AjaxResult() { // 杩斿洖浠g爜锛?-鎴愬姛锛屽叾瀹冨け璐? this.code = -1; // 杩斿洖淇℃伅 this.message = null; // 杩斿洖鏁版嵁锛屽彲浠ユ槸JSON瀵硅薄銆乆ML銆乀EXT銆丠TML銆丣AVASCRIPT this.datas = null; // 杩斿洖鍦板潃 this.url = null; // 闄勫甫鏁版嵁 this.tag = null; /** * 妫€鏌ョ粨鏋滄槸鍚﹁皟鐢ㄦ垚鍔? */ this.isSuccess = function () { return (this.code == "0" || this.code == 0); }; /** * 杩斿洖瀵硅薄淇℃伅 */ this.toString = function () { return ("[" + this.code + "]" + this.message); }; /** * 濡傛灉鏄疉jax鏌ヨ鏁版嵁闆嗚皟鐢紝杩斿洖缁撴瀯闆嗕釜鏁? */ this.count = function () { return this.isSuccess() ? (this.datas ? this.datas.length : 0) : 0; }; /** * 濡傛灉鏄疉jax鏌ヨ鏁版嵁闆嗚皟鐢紝鑾峰彇璁板綍闆嗭紝濡傛灉鏈壘鍒拌繑鍥瀗ull * @param {number} iIndex 璁板綍闆嗙储寮曞彿 */ this.getDataset = function (iIndex) { if (this.isSuccess()) { if (iIndex === undefined || iIndex === null) { return this.datas ? this.datas[0] : null; } else if (iIndex >= 0 && iIndex < this.count()) { return this.datas ? this.datas[iIndex] : null; } else { return null; } } else { throw new Error(this.toString()); } }; /** * 浠嶢jax璋冪敤杩斿洖鐨勬暟鎹腑锛岃幏鍙栫iIndex涓褰曢泦涓殑绗瑀ow琛岀殑鏁版嵁锛屽鏋滄湭鎵惧埌杩斿洖null * 璇ュ嚱鏁颁笉鍦ㄦ鏌ュ叆鍙傜被鍨嬬殑鏈夋晥鎬? * @param {number} iIndex 璁板綍闆嗙储寮曞彿 * @param {number} iRow 璁板綍闆嗙储寮曞彿 */ this.getData = function (iIndex, iRow) { if (this.isSuccess()) { var oData = null; if (arguments.length === 0) { iIndex = 0; iRow = 0; } else if (arguments.length === 1) { iRow = iIndex; iIndex = 0; } else { oData = this.getDataset(iIndex); } // 纭畾琛屾暟杩斿洖鏁版嵁 if (oData === null) { return null; } else { if (iRow >= 0 && iRow < oData.length) { return oData[iRow]; } else if (iRow == undefined || iRow == null) { return oData[0]; } else { return null; } } } else { throw new Error(this.toString()); } }; } /** *
Ajax璋冪敤灏佽瀵硅薄
*/ var Ajax = { // 鏈嶅姟鍣ㄨ繑鍥炴暟鎹被鍨嬪畾涔? DT_TEXT: "text", // 鏅€氭枃鏈牸寮? DT_XML: "xml", // XML鏍煎紡 DT_HTML: "html", // Html鏍煎紡 DT_JSON: "json", // Json鏍煎紡 DT_SCRIPT: "script", // Javascript鑴氭湰 // 鏈嶅姟鍣ㄨ繑鍥炵殑鏁版嵁闆嗙殑鏁版嵁缁勭粐鏍煎紡 RDF_JSON: 0, // JSON鏁扮粍鏍煎紡 RDF_ARRAY: 1, // 浜岀淮鏁扮粍鏍煎紡 RDF_XML: 2, // XML鏁版嵁鏍煎紡 /** * Ajax璇锋眰璋冪敤锛堜娇鐢╦Query锛? * @param sUrl 璇锋眰鐨刄RL鍦板潃 * @param oParam 璇锋眰鍏ュ弬 * @param fnCallBack 璋冪敤鍚庡洖璋冨嚱鏁? * @param bAsync 鏄惁寮傛璇锋眰锛岄粯璁rue * @param sReturnDataType 鏈嶅姟鍣ㄨ繑鍥炴暟鎹被鍨嬶細text銆亁ml銆乭tml銆乯son銆乻cript锛屽鏋滀笉鎸囧畾鍒欓粯璁や负json * @param bProcess 鏄惁鏄剧ず杩涘害鎻愮ず锛岄粯璁ゆ樉绀? * @returns {object} 濡傛灉鏄悓姝ユ墽琛岃繑鍥炴墽琛岀粨鏋? */ request: function (sUrl, oParam, fnCallBack, bAsync, sReturnDataType, bProcess) { if (oParam == undefined)oParam = {}; if (KUC && KUC.getCacheData("menuid") != null) { oParam.pagetype = KUC.getCacheData("menuid"); } else { oParam.pagetype = $.getCookie("menuid"); } // 璋冪敤杩斿洖缁撴灉 var ajaxResult = new AjaxResult(); // 杩斿洖鏁版嵁绫诲瀷 if (arguments.length < 5 || !sReturnDataType) { sReturnDataType = Ajax.DT_JSON; } // 寮傛鍏ュ弬 if (arguments.length < 4 || KGF.isEmpty(bAsync)) { bAsync = true; } if (bProcess != false) { bProcess = true; } // 璋冪敤鍙傛暟 var sRequestType = "POST"; /* * 璋冪敤澶辫触澶勭悊浜嬩欢锛? * @param xhr XMLHttpRequest 瀵硅薄 * @param textStatus 閿欒淇℃伅 * @param error 鎹曡幏鐨勫紓甯稿璞?鍙€? */ var ajaxErrorEvent = function (xhr, textStatus, error) { ajaxResult.code = -1; if (xhr && xhr.readyState == 0) { return; } if (typeof(error) === "string") { ajaxResult.message = "[" + xhr.status + "]" + textStatus + " " + error; } else { ajaxResult.message = "[" + xhr.status + "]" + error.message; } ajaxResult.datas = null; ajaxResult.url = null; ajaxResult.tag = null; KDlg.waiting(false, false); // 璋冪敤鍥炶皟鍑芥暟 if (jQuery.isFunction(fnCallBack)) { fnCallBack(ajaxResult); } }; /* * 璋冪敤鎴愬姛鍚庣殑澶勭悊浜嬩欢 * @param data 鐢辨湇鍔″櫒杩斿洖锛屽苟鏍规嵁dataType鍙傛暟杩涜澶勭悊鍚庣殑鏁版嵁 * @param textStatus 鎻忚堪鐘舵€佺殑瀛楃涓诧紝濡傦細success * @param xhr XMLHttpRequest 瀵硅薄 */ var ajaxSuccessEvent = function (data, textStatus, xhr) { if (bProcess) KDlg.waiting(false, false); if (sReturnDataType === Ajax.DT_JSON) { try { var errMsg = ""; if (data.fieldErrors) { $.each(data.fieldErrors, function (key, value) { errMsg += value.toString() + ";"; }); ajaxResult.code = -1; ajaxResult.message = errMsg; ajaxResult.datas = null; ajaxResult.url = null; ajaxResult.tag = null; } else { ajaxResult.code = data.bizResult.errorCode; ajaxResult.message = data.bizResult.errorMessage; ajaxResult.datas = data.bizResult.datasets; ajaxResult.url = data.url; ajaxResult.tag = data.tag; ajaxResult.sessionId = data.sessionId; } if ((!ajaxResult.isSuccess()) && (bProcess)) { var breakFlag = false; switch (ajaxResult.message) { case "syserror": KGF.gotoPage(KGF.getRootPath() + "/page/common/AjaxError.jsp"); breakFlag = true; break; case "login": KGF.gotoPage(KGF.getRootPath() + "/page/frame/Login.jsp"); breakFlag = true; break; case "timeout": KGF.gotoPage(KGF.getRootPath() + "/page/common/TimeOut.jsp"); breakFlag = true; break; } if (breakFlag) return; } else if (KUC.getCacheData("sessionId", ajaxResult.sessionId) != ajaxResult.sessionId) { KUC.setCacheData("sessionId", ajaxResult.sessionId); KGF.gotoPage(KGF.getRootPath() + "/page/common/TimeOut.jsp"); return; } } catch (e) { ajaxResult.code = -1; ajaxResult.message = "Parse json data failed: " + e.message; ajaxResult.datas = data; } } else if (sReturnDataType === Ajax.DT_XML) { ajaxResult.code = 0; ajaxResult.message = textStatus; ajaxResult.datas = jQuery.parseXML(data); } else { ajaxResult.code = 0; ajaxResult.message = textStatus; ajaxResult.datas = data; } // 璋冪敤鍥炶皟鍑芥暟 if (jQuery.isFunction(fnCallBack)) { if ((!ajaxResult.isSuccess()) && (bProcess) && (ajaxResult.tag == "timeout")) return; //澶勭悊瓒呮椂灏变笉鍦ㄨ皟鐢ㄥ洖璋冨嚱鏁? fnCallBack(ajaxResult); } }; /* * 璇锋眰瀹屾垚鍚庡洖璋冨嚱鏁?(璇锋眰鎴愬姛鎴栧け璐ヤ箣鍚庡潎璋冪敤)銆? * @param xhr XMLHttpRequest瀵硅薄 */ var ajaxCompleteEvent = function (xhr, textStatus) { }; /* * 鍙戦€佽姹傚墠澶勭悊浜嬩欢锛屽彲淇敼 XMLHttpRequest 瀵硅薄鐨勫嚱鏁帮紝 * 濡傛坊鍔犺嚜瀹氫箟 HTTP 澶淬€俋MLHttpRequest 瀵硅薄鏄敮涓€鐨勫弬鏁般€? * 濡傛灉杩斿洖false鍙互鍙栨秷鏈ajax璇锋眰 * @param xhr XMLHttpRequest瀵硅薄 */ var ajaxBeforeSendEvent = function (xhr) { if (bProcess != false) KDlg.waiting(true, true); return true; }; //璋冪敤jQuery鐨刟jax jQuery.ajax({ type: sRequestType, cache: false, // 涓嶇紦瀛樻暟鎹? url: sUrl, data: oParam, dataType: sReturnDataType, error: ajaxErrorEvent, success: ajaxSuccessEvent, beforeSend: ajaxBeforeSendEvent, complete: ajaxCompleteEvent, async: bAsync }); return ajaxResult; } //-- function request() end }; /** *URL瀵硅薄绫?/p> * 璇ョ被鐢ㄤ簬瑙f瀽褰撳墠椤甸潰鐨刄RL鎴栨寚瀹氱殑URL锛屽苟灏哢RL涓煡璇㈠瓧绗︿覆瑙f瀽鍒癓istMap涓? * @param {string} sUrlHref 寰呰В鏋愮殑URL锛屽鏋滀笉鎸囧畾鍒欒В鏋愬綋鍓嶉〉闈㈢殑URL */ function URL(sUrlHref) { /** * URL灞炴€у畾涔? */ this.clear = function () { this.protocol = ""; // 鍗忚 this.host = ""; // 涓绘満 this.port = 80; // 绔彛 this.path = ""; // 璺緞 this.page = ""; // 椤甸潰 if (!this.params) // 璇锋眰鍙傛暟 this.params = new ListMap(); }; /** * 瑙f瀽RUL */ this.parseUrl = function () { var iX, iY, iZ, sHost; var sUrl = sUrlHref; var sParams = null; this.clear(); // 瑙g爜 if (!sUrl) sUrl = location.href; sUrl = decodeURI(sUrl); iX = sUrl.indexOf("?"); if (iX > -1) { sParams = sUrl.substring(iX + 1, sUrl.length); sUrl = sUrl.substring(0, iX); } // 瑙f瀽鍗忚 iX = sUrl.indexOf("://"); if (iX > -1) { this.protocol = sUrl.substring(0, iX); iX += 3; } else { iX = 0; } // 瑙f瀽涓绘満銆佺鍙? iY = sUrl.indexOf(":", iX); iZ = sUrl.indexOf("/", iX); if (iZ > iY && iY > iX) { this.host = sUrl.substring(iX, iY); this.port = parseInt(sUrl.substring(iY + 1, iZ)); iX = iZ; } else if (iZ > iX) { sHost = sUrl.substring(iX, iZ); if (sHost.indexOf(".") > 0 && sHost != ".." && sHost != ".") { this.host = sHost; iX = iZ; } } // 瑙f瀽璺緞(鍖呮嫭'/') iY = sUrl.lastIndexOf("/"); if (iY > -1) { this.page = sUrl.substring(iY + 1, sUrl.length); if (iY >= iX) { this.path = sUrl.substring(iX, iY + 1); } } else { this.page = sUrl; } var oKucItem = KUC.getURLParam(); for (var aKey in oKucItem) { this.params.set(aKey, oKucItem[aKey]); } if (sParams == null) { return; } // 瑙f瀽璇锋眰鍙傛暟 var sItem; var aParam = sParams.split("&"); for (var i = 0; i < aParam.length; i++) { sItem = aParam[i]; iX = sItem.indexOf("="); if (iX > -1) { this.params.set(sItem.substring(0, iX), sItem.substring(iX + 1, sItem.length)); } } ; }; // 瑙f瀽 this.parseUrl(); } /** *
绯荤粺瀵硅瘽妗嗗璞?/p> * 鏀寔涓嶅悓瀵硅瘽妗嗭紝 */ var KDlg = { // 瀵硅瘽妗嗘樉绀虹被鍨嬪畾涔? DLG_INFO: 0, // 鎻愮ず淇℃伅妗? DLG_WARNING: 1, // 璀﹀憡淇℃伅妗? DLG_ERROR: 2, // 閿欒/澶辫触淇℃伅妗? DLG_SUCCESS: 3, // 鎴愬姛淇℃伅妗? DLG_CONFIRM: 4, // 纭淇℃伅妗? // 瀵硅瘽妗嗘爣棰? DLG_Titles: ["[淇℃伅]", "璀﹀憡", "閿欒", "鎴愬姛", "纭"], // 瀵硅瘽妗嗘寜閽? DLG_Buttons: ["纭畾", "鍙栨秷"], // 瀵硅瘽妗嗘寜閽被鍨? BTN_OK: 0, // 纭鎸夐挳 BTN_CANCEL: 1, // 鍙栨秷鎸夐挳 /** * 鏄剧ず瀵硅瘽妗嗭紱鍦ㄨ皟鐢ㄥ璇濇鐨勬椂鍊欙紝璇疯皟鐢ㄦ寚瀹氱殑鏍峰紡鏂囦欢淇℃伅 * 涓斿悓鏃跺湪浣跨敤鐨勬枃浠朵腑寮曞叆artDialog.js鏂囦欢 * @param sContent 瀵硅瘽妗嗘樉绀哄唴瀹? * @param iDlgType 瀵硅瘽妗嗙被鍨嬶紝鏀寔锛欴LG_INFO,DLG_WARNING,DLG_ERROR,DLG_SUCCESS,DLG_CONFIRM,涓嶆寚瀹氫负DLG_INFO * @param oButtons 瀵硅瘽妗嗘樉绀烘寜閽璞★紝濡傦細{"鍙栨秷": doDefaultClose},涓嶆寚瀹欴LG_CONFIRM绫诲瀷榛樿鏄剧ず * 纭畾銆佸彇娑堟寜閽紝鍏跺畠绫诲瀷鏄剧ず锛氱‘瀹? * @param sTitle 瀵硅瘽妗嗘爣棰橈紝涓嶆寚瀹氭樉绀篕GC.DLG_Titles[iDlgType] * @param iWidth 瀵硅瘽妗嗗搴︼紝鍙€? * @param iHeight 瀵硅瘽妗嗙殑楂樺害锛屽彲閫? */ dialog: function (sContent, iDlgType, oButtons, sTitle, iWidth, iHeight, oOptions) { /** * 榛樿纭畾 */ function doDefaultClose(event) { $(this).dialog("close"); } // 璁剧疆鏄剧ず鍐呭 var $dlg = $("#_kfit_dlg"); if ($dlg.length === 0) { $("body").append('
娴忚鍣ㄧSession缂撳瓨鍣?/p> * 鐢ㄤ簬瀛樻斁褰撳墠鐧诲綍瀹㈡埛鐨勫父鐢ㄤ俊鎭紝濡傦細瀹㈡埛鍙枫€佸鎴峰悕绉扮瓑锛岃繖浜涗俊鎭粠鍙互閫氳繃璋冪敤璇ュ璞$殑refreshSession() * 鍑芥暟鏉ラ噸鏂拌幏鍙栥€傜紦瀛橀」鐨勯€氳繃set鏂规硶璁剧疆锛岄€氳繃get鏂规硶璇诲彇锛屾晠鏂板涓€涓紦瀛樻暟鎹」鏃惰娣诲姞鐩稿簲鐨剆et鍜実et鏂规硶銆? */ var KUC = (function () { if (window != window.top && top._KUC) { KUC = top._KUC; } else { KUC = new KfitUserCache(); } return KUC;//add by ljy 20120626 })(); function KfitUserCache(cacheFileName) { // 鍐呴儴缂撳瓨瀵硅薄锛屽瓨鏀剧紦瀛樻暟鎹? var _KeyValue = '0000'; var _KeyLinkParam = "1000"; var _oUserCache = createUserCache(); /** * 鏍规嵁瀹㈡埛娴忚鍣ㄦ敮鎸佺殑鏈湴缂撳瓨鏈哄埗鍒涘缓缂撳瓨瀵硅薄锛屽彲鑳界殑缂撳瓨鏈哄埗鏈夛細sessionStorage锛宭ocalStorage锛? * globalStorage鍜岄〉闈㈢紦瀛? */ function createUserCache() { return new ListMap(); } ; /** * 浠庢湇鍔″櫒閲嶆柊鑾峰彇Session鏁版嵁 */ this.refreshSession = function () { Ajax.request("getCustSession.action", {"FailType": 'login'}, function (ajaxResult) { if (ajaxResult.isSuccess()) { var oData = ajaxResult.getData(0, 0); if (oData !== null) { var sProp; for (sProp in oData) { KUC.setCacheData(sProp, oData[sProp]); } } } }, false); }; this.refreshSession2 = function (epwd) { Ajax.request("getCustSession.action", {"passwd": epwd}, function (ajaxResult) { if (ajaxResult.isSuccess()) { var oData = ajaxResult.getData(0, 0); if (oData !== null) { var sProp; for (sProp in oData) { KUC.setCacheData(sProp, oData[sProp]); } } } }, false); }; /** * 鏍规嵁缂撳瓨椤瑰悕绉拌幏鍙栫紦瀛橀」鍊? * @param {sring} sKey 缂撳瓨椤瑰悕绉? * @param vDefaultValue 濡傛灉缂撳瓨椤逛笉瀛樺湪榛樿鐨勮繑鍥炲€? * @returns 缂撳瓨椤瑰€? */ this.getCacheData = function (sKey, vDefaultValue) { return _oUserCache.getValue(_KeyValue, sKey, vDefaultValue); }; /** * 璁剧疆缂撳瓨椤癸紝濡傛灉瀛樺湪鍒欐洿鏂帮紝鍚﹀垯鏂板缂撳瓨椤? * @param {sring} sKey 缂撳瓨椤瑰悕绉? * @param {sring} value 缂撳瓨椤瑰€? */ this.setCacheData = function (sKey, value) { _oUserCache.setValue(_KeyValue, sKey, value); }; this.removeCacheData = function (sKey) { var _oItem = this.getItem(); if (_oItem || _oItem[sKey]) { _oItem[sKey] = undefined; delete _oItem[sKey]; } }; /** * 浠庣紦瀛樹腑绉婚櫎缂撳瓨椤? * @param {sring} sKey 缂撳瓨椤瑰悕绉? */ this.removeItem = function (sKey) { _oUserCache.removeItem(sKey); }; /** * 娓呯┖缂撳瓨涓墍鏈夌紦瀛橀」 */ this.clear = function () { _oUserCache.clear(); }; this.getItem = function () { return _oUserCache.getItem(_KeyValue, ""); }; // 灏咾UC涓唴瀹硅浆鍖栦负String this.toString = function () { var obj = _oUserCache.getItem(_KeyValue, ""); var sResult = ""; var s = ""; for (s in obj) { if (typeof obj[s] == "function") continue; sResult += "{" + s + ":" + obj[s] + "},"; } if (sResult.length > 0) { sResult = sResult.substring(0, sResult.length - 1); } return sResult; }; /** * 璁剧疆娴忚鍣ㄤ紶閫掑弬鏁? * @param sKey * @param value */ this.setLinkParamData = function (sKey, value) { _oUserCache.setValue(_KeyLinkParam, sKey, value); }; /** * 鑾峰彇娴忚鍣ㄤ紶閫掑弬鏁? * @param sKey * @param vDefaultValue * @return {*} */ this.getLinkParamData = function (sKey, vDefaultValue) { return _oUserCache.getValue(_KeyLinkParam, sKey, vDefaultValue); }; this.setURLParam = function (value) { _oUserCache.setValue(_KeyLinkParam, "URL_PARAM", value); }; this.getURLParam = function () { return _oUserCache.getValue(_KeyLinkParam, "URL_PARAM", {}); }; /** * 鑾峰彇娴忚鍣ㄤ紶閫掑弬鏁板璞? * @return {*} */ this.getLinkParam = function () { return _oUserCache.getItem(_KeyLinkParam, ""); }; /** * 娓呯┖娴忚鍣ㄥ弬鏁板璞? */ this.clearLinkParam = function () { _oUserCache.del(_KeyLinkParam); }; /** * 娓呴櫎娴忚鍣ㄥ弬鏁版暟鎹? * @param sKey */ this.removeLinkParam = function (sKey) { var _oItem = this.getLinkParam(); if (_oItem || _oItem[sKey]) { _oItem[sKey] = undefined; delete _oItem[sKey]; } }; } /** *
鑷畾涔夎緭鍑烘爣绛惧鐞嗗櫒kfit:out
* 璇ョ被鐢ㄤ簬澶勭悊鑷畾涔夋爣绛緆fit:out涓殑涓殑鍙橀噺杈撳嚭锛宬fit:out鏍囩涓璿laue灞炴€у畾涔夎緭鍑哄彉閲忓悕绉帮紝dict灞炴€у畾涔夌炕璇戠殑 * 鏁版嵁瀛楀吀瀵硅薄鍚嶇О锛宖ormat灞炴€у畾涔夋暟鎹殑鏍煎紡鍖栫被鍨嬶紝vlaue灞炴€у畾涔夌殑鍙橀噺鍚嶄负oDataObj瀵硅薄鐨勫睘鎬у悕绉帮紝鍏跺€间粠 * 璇ュ璞$浉搴斿睘鎬т腑鑾峰彇锛屽彟浣跨敤鑷畾涔夋爣绛炬椂涓嶈鐢細瑕佺敤瀹屾暣鏍煎紡锛屼笉瑕佺敤椤甸潰鎺у埗鍩虹绫?/p> * 璇ョ被鏄墍鏈夐〉闈s鎺у埗绫荤殑鍩虹被锛屽疄鐜颁笅鍒楀叕鐢ㄥ姛鑳?
initialize
鏂规硶璁剧疆鍒伴〉闈㈢殑onload
浜嬩欢涓紝initialize
鏂规硶璁剧疆 * 鍒伴〉闈㈢殑onunload
浜嬩欢涓? * @param sJsClassName * @returns 鍒涘缓鐨勯〉闈㈡帶鍒跺璞? */ function loadJsPageClass(sJsClassName) { // 璁剧疆椤甸潰鎺у埗绫荤户鎵夸簬KfitPageBase鍩虹被 eval(sJsClassName + ".prototype = new KfitPageBase();"); eval(sJsClassName + ".prototype.constructor = " + sJsClassName + ";"); var ojbReturn = null; try { // 鍒涘缓椤甸潰鎺у埗瀵硅薄 var sVarName = "o" + sJsClassName; ojbReturn = eval("window." + sVarName + " = new " + sJsClassName + "();"); // 鍏宠仈鐣岄潰鍔犺浇澶勭悊浜嬩欢 $(document).ready(function () { try { ojbReturn['initialize'](); ojbReturn['initElement'](); ojbReturn['initCSS'](); if (KGP.USER_ACTION_AUTO_POST > 0) {// 鍏ㄩ儴鍔犺浇鍚庡惎鍔ㄨ嚜鍔ㄦ彁浜ゅ姛鑳? ojbReturn['startAutoPostAction'](KGP.USER_ACTION_AUTO_POST); } else { ojbReturn['postActions'](true, false); } } catch (e) { if ((KGP.USER_ACTION_LEVEL & 4) === 4) { ojbReturn['doErrorEvent']("鍒濆鍖朳" + sVarName + "]澶辫触锛? + e.message); ojbReturn['postActions'](true, false); } KDlg.except("鍒濆鍖朳" + sVarName + "]澶辫触锛?, e); } }); // 鍏宠仈鐣岄潰鍗歌浇澶勭悊浜嬩欢 $(window).unload(function () { try { eval(sVarName + ".finalize();" + sVarName + " = null;"); } catch (e) { KDlg.except("閲婃斁[" + sVarName + "]澶辫触锛?, e); } }); } catch (e) { ojbReturn = null; KDlg.except("鍔犺浇[" + sJsClassName + ".js]澶辫触锛?, e); } return ojbReturn; } /** *椤甸潰document鍏冪礌鎿嶄綔鍑芥暟灏佽瀵硅薄
*/ var KDom = { /** * 鏄剧ず/闅愯棌鎸囧畾鐨勬爣璇嗙殑鍏冪礌 * @param sElementId 鍏冪礌鐨刬d * @param bShow true-鏄剧ず,false-闅愯棌 */ display: function (sElementId, bShow) { var node = document.getElementById(sElementId); if (node != null) { if (bShow) { if (node.style.display == "none") node.style.display = ""; } else { if (node.style.display != "none") node.style.display = "none"; } } }, /** * 浣挎寚瀹氭爣璇嗙殑鍏冪礌鏃犳晥鎴栨湁鏁? * @param sElementId 鍏冪礌鐨刬d * @param bDisabled true-鏃犳晥,false-鏈夋晥 */ disabled: function (sElementId, bDisabled) { if (bDisabled) $("#" + sElementId).attr("disabled", true); else $("#" + sElementId).removeAttr("disabled"); }, getAttribeString: function (nSrcElement, aExcludeAttrs) { var sAttribe = ""; $.each(nSrcElement.attributes, function (index, oAttribe) { if (!aExcludeAttrs || !(oAttribe.name in aExcludeAttrs)) sAttribe += " " + oAttribe.name + "='" + oAttribe.value + "'"; }); return sAttribe; }, /** * 鍚戜笅鎷夐€夋嫨妗嗕腑娣诲姞閫夋嫨椤? * @param sSelectId 涓嬫媺閫夋嫨妗嗗厓绱犳爣璇? * @param dataList 鏁版嵁鍒楄〃锛屽彲浠ヤ竴缁存暟缁勫璞℃垨ListMap * @param sTextPropName 閫夐」text灞炴€х殑鍙栧€煎睘鎬у悕绉? * @param sValuePropName 閫夐」value灞炴€х殑鍙栧€煎睘鎬у悕绉? * @param bClearItems 鏄惁娓呴櫎鏃ч€夐」 * @param vDefaultValue 榛樿閫夋嫨鍊硷紝濡傛灉鏄痭umber绫诲瀷鍒欎负绱㈠紩锛宻tring绫诲瀷涓洪€夋嫨鐨剉alue */ addSelectOption: function (sSelectId, dataList, aTextPropName, aValuePropName, bClearItems, vDefaultValue) { // 鑾峰彇鏁版嵁 function getValues(oData, aProName) { var sExt = ""; var sValue = oData[aProName[0]]; for (var i = 1; i < aProName.length; i++) { sExt += oData[aProName[i]] + " "; } if (aProName.length > 1) sValue = "[" + sValue + "]" + jQuery.trim(sExt); return sValue; } // 鑾峰彇涓嬫媺鍏冪礌瀵硅薄 var select = document.getElementById(sSelectId); if (KGF.isEmpty(select)) return; // 娓呴櫎鏃? if (bClearItems) { this.clearSelectOption(sSelectId, false); } var defaultItem = null; if (arguments.length > 5) { if (typeof(arguments[5]) === "number") { defaultItem = arguments[5]; } else if (typeof(arguments[5]) === "string") { defaultItem = arguments[5]; } } else if (arguments.length == 4) { bClearItems = false; } else if (arguments.length == 3) { aValuePropName = ["key"]; } else if (arguments.length == 2) { aTextPropName = ["value"]; aValuePropName = ["key"]; } var option, text, value; if (dataList instanceof ListMap) { var iCount = dataList.count(); for (var i = 0; i < iCount; i++) { text = getValues(dataList.items(i), aTextPropName); value = getValues(dataList.items(i), aValuePropName); option = new Option(text, value); if (defaultItem === i || defaultItem === value) { option.selected = true; } select.options.add(option); } } else if (dataList instanceof Array) { var iCount = dataList.length; for (var i = 0; i < iCount; i++) { text = getValues(dataList[i], aTextPropName); value = getValues(dataList[i], aValuePropName); option = new Option(text, value); if (defaultItem === i || defaultItem === value) { option.selected = true; } select.options.add(option); } } }, /** * 涓轰笅鎷夊垪琛ㄥ厓绱犳坊鍔犱竴涓€夋嫨椤? * @param {string} sElementId 鍏冪礌鏍囪瘑 * @param {string} sValue 閫夋嫨鍊? * @param {string} sText 閫夐」鍚嶇О */ addSelectOneOption: function (sElementId, sValue, sText) { var select = document.getElementById(sElementId); if (!KGF.isEmpty(select)) { var option = new Option(sText, sValue); select.options.add(option); } }, /** * 娓呴櫎涓嬫媺閫夋嫨妗嗛€夐」 * @param sSelectId 涓嬫媺閫夋嫨妗嗗厓绱犳爣璇? */ clearSelectOption: function (sSelectId, bAddTopItem) { // 鑾峰彇涓嬫媺鍏冪礌瀵硅薄 var select = document.getElementById(sSelectId); if (KGF.isEmpty(select)) return; select.innerHTML = ""; if (bAddTopItem) { var option = new Option(KGP.TOP_ITEM_TEXT, ""); option.selected = true; select.options.add(option); } }, /** * 鑾峰彇Select鍏冪礌閫変腑鏉$洰鐨凾ext鍊硷紙涓嶆槸Value锛? * @param sSelectId * @returns string */ getSelectText: function (sSelectId) { var o = document.getElementById(sSelectId); return KGF.isEmpty(o) ? "" : o.options[o.selectedIndex].text; }, /** * 鑾峰彇Radio鍏冪礌缁勪腑閫変腑鐨勯€夐」鍊? * @param sRadioName Radio鍏冪礌缁勫悕绉? * @returns boolean */ getRadioValue: function (sRadioName) { var obj = document.getElementsByName(sRadioName); for (var i = 0; i < obj.length; i++) { if (obj[i].checked) { return obj[i].value; } } return undefined; }, /** * 璁剧疆鍏冪礌鐨刬nnerHTML * @param sElementId * @param sHtml */ setInnerHtml: function (sElementId, sHtml) { $("#" + sElementId).html(sHtml); }, /** * 杞崲閲戦涓哄ぇ鍐欙紝骞舵樉绀哄埌鎸囧畾鐨勫厓绱犲唴 * @param sId 鏄剧ず澶у啓鍏冪礌鏍囪瘑 * @param fNumber 閲戦 * @param sSuffix 鏄剧ず鍚庣紑 */ showCapitalRMB: function (sElementId, fNumber, sSuffix) { if (KGF.isEmpty(fNumber)) return; var $Obj = jQuery("#" + sElementId); if (KGF.isEmpty($Obj)) return; var sCapital = KGF.capitalRMB(fNumber, sSuffix); if (Number(fNumber) > 0 && !KGF.isEmpty(sCapital)) { $Obj.html(sCapital); $Obj.css("color", "#FF3300"); } else { $Obj.html(""); $Obj.css("color", "red"); } }, /** * 鏄剧ず閲戦杈撳叆闄愬埗淇℃伅鍒版寚瀹氱殑鍏冪礌鍐? * @param sElementId 鏄剧ず淇℃伅鐨勫厓绱犳爣璇? * @param fMin 鏈€灏忛噾棰? * @param fMax 鏈€澶ч噾棰? * @param sUnit 閲戦鍗曚綅锛堝厓銆佷唤锛? * @param sBizType 涓氬姟鎿嶄綔绫诲瀷锛堢敵璐€佽璐€傘€傦級 */ showAmountRangeMsg: function (sElementId, fMin, fMax, sUnit, sBizType) { var sMsg = "", sMax, sMin, min, max; if (typeof(fMin) == "string") { sMin = fMin; while (sMin.indexOf(",") != -1) { sMin = sMin.replace(",", ""); } min = Number(sMin); } else { min = fMin; } if (typeof(fMax) == "string") { sMax = fMax; while (sMax.indexOf(",") != -1) { sMax = sMax.replace(",", ""); } max = Number(sMax); } else { max = fMax; } if (min >= 0) { if (max > min) { sMsg = sBizType + "鑼冨洿(" + fMin + " " + sUnit + "~" + fMax + " " + sUnit + ")"; if (min == 0) sMsg = sMsg + "(涓嶅惈0)"; } else { sMsg = sBizType + "璧风偣涓猴細" + fMin + " " + sUnit; } } if (!KGF.isEmpty(sElementId)) { KDom.display(sElementId, true); document.getElementById(sElementId).innerHTML = sMsg; $("#" + sElementId).css("color", "black"); } return sMsg; }, /** * 妫€鏌ラ噾棰濊緭鍏ラ檺鍒?骞舵樉绀烘彁绀轰俊鎭埌鎸囧畾鐨勫厓绱犲唴 * @param fAmount 閲戦杈撳叆 * @param fMin 鏈€灏忛噾棰? * @param fMax 鏈€澶ч噾棰? * @param sUnit 閲戦鍗曚綅锛堝厓銆佷唤锛? * @param sBizType 涓氬姟鎿嶄綔绫诲瀷锛堢敵璐€佽璐€傘€傦級 * @param sErrMsgId 鏄剧ず閿欒淇℃伅鐨勫厓绱犳爣璇? */ checkAmountLimit: function (fAmount, fMin, fMax, sBizType, sErrMsgId, sUnit) { if (KGF.isEmpty(sUnit)) { sUnit = "鍏?; } var sErrMsg = "", bReturn = true; // 闈炴暟瀛? if (fAmount == "" || !Number(fAmount)) { sErrMsg = '浜ゆ槗閲戦鏍煎紡闈炴硶銆?; bReturn = false; } else { var fTempAmount = Number(fAmount); // 妫€鏌ュ皬鏁扮偣浣嶆暟 var i = (fAmount.toString()).indexOf('.'); if (i >= 0) { i = (fAmount.toString()).substring(i + 1, fAmount.toString().length); if (i.length >= 3) { sErrMsg = '浜ゆ槗閲戦閿欒锛屽皬鏁扮偣浣嶆暟涓嶅簲瓒呰繃2浣?; bReturn = false; } } // 妫€鏌ユ渶澶у€煎拰鏈€灏忓€? if (bReturn) { if (fTempAmount < Number(fMin)) { sErrMsg = "浜ゆ槗閲戦閿欒锛岃鍩洪噾" + sBizType + "璧风偣涓猴細" + fMin + sUnit; bReturn = false; } else if (fTempAmount > Number(fMax)) { sErrMsg = "浜ゆ槗閲戦閿欒锛岃鍩洪噾" + sBizType + "涓婇檺涓猴細" + fMax + sUnit; bReturn = false; } } } if (!KGF.isEmpty(sErrMsgId)) { document.getElementById(sErrMsgId).innerHTML = sErrMsg; } if (!bReturn) { $("#" + sErrMsgId).css('color', 'red'); } return bReturn; }, /** * 璁剧疆涔板叆鍩洪噾鏃剁殑鏀粯鏂瑰紡锛屽皢鏀粯鏂瑰紡鏄剧ず鍒版寚瀹氬厓绱爏ElementId涓紝 * @param sElementId 鏄剧ず鏀粯鏂瑰紡鐨勫厓绱犳爣璇? * @param fnsPayWayChangeEventName 鏀粯鏂瑰紡閫夋嫨鏀瑰彉鏃剁殑澶勭悊鏂规硶锛岃澶勭悊鏂规硶鍏ュ弬涓洪€夋嫨椤笽d * @param defaultValu 榛樿閫夋嫨椤圭殑鍊? * @returns 杩斿洖榛樿閫夋嫨椤圭殑鍏冪礌鏍囪瘑 */ setBuyPayWay: function (sElementId, fnsPayWayChangedEventName, defaultValu, aParams) { // 妫€鏌ユ槸鍚︽敮鎸侀€夋嫨鏀粯鏂瑰紡 if (!KGP.BUY_SUPPORT_WAY) return ""; var sReturn = ""; var i, o, sId, sKey, sName, j; var sText = "", fnsDoFunc = ""; var iCount = KGD.PayWay.count(); var bHasEventFunc = !KGF.isEmpty(fnsPayWayChangedEventName); // 鏀粯鏂瑰紡鏀瑰彉澶勭悊杩囩▼ if (bHasEventFunc) { i = fnsPayWayChangedEventName.indexOf("("); if (i >= 0) { fnsPayWayChangedEventName = fnsPayWayChangedEventName.substring(0, i); } if (!KGF.isEmpty(fnsPayWayChangedEventName)) { fnsPayWayChangedEventName = "onclick='javascript:" + fnsPayWayChangedEventName; } } // 杈撳嚭鏀粯鏂瑰紡 for (i = iCount - 1; i >= 0; i--) { o = KGD.PayWay.items(i); sKey = o[KGD.PayWay.getKeyName()]; if (aParams != null && aParams != undefined) { var bSign = false; for (j = 0; j < aParams.length; j++) { if (aParams[j] == sKey) { bSign = true; break; } } if (bSign) continue; } // 鍒ゆ柇鏄惁鏀寔璇ョ被鏀粯鏂瑰紡 if ((KGC.PW_BankCard === sKey && KGP.BUY_SUPPORT_BANK_CARD) || // 閾惰鍗℃敮浠? (KGC.PW_MoneyFund === sKey && KGP.BUY_SUPPORT_MONEY_FUND) || // 璐у竵鍩洪噾鏀粯 (KGC.PW_Remit === sKey && KGP.BUY_SUPPORT_REMIT)) // 姹囨鏀粯 { sName = o[KGD.PayWay.getValueName()]; sId = KGC.GO_PayWay + sKey; if (bHasEventFunc) { fnsDoFunc = fnsPayWayChangedEventName + "(\"" + sId + "\");'"; } sText += "绯荤粺椤甸潰鏍峰紡鏂规硶灏佽瀵硅薄
* 璇ュ璞$粍缁囬〉闈㈠厓绱犳牱寮忕殑璁剧疆鏂规硶锛屾敞鎰忥細椤甸潰鐗规湁鐨勮缃笉瑕佹斁鍏ヨ瀵硅薄 */ var KCss = { twoColorTable: function (sTableId, sOddClass, sEvenClass) { var id = sTableId; var odd = oddClass; var even = evenClass; $('#' + id + ' tr:odd').addClass(odd); $('#' + id + ' tr:even').addClass(even); }, /** * 涓夊垪琛ㄦ牸鍐呭鎺掔増 * @param {string} sTableClass琛ㄦ牸鏍峰紡鍚嶇О * @param {string} sTd1Class琛ㄦ牸绗竴鍒楁牱寮? * @param {string} sTd2Class琛ㄦ牸绗簩鍒楁牱寮? * @param {string} sTd3Class琛ㄦ牸绗笁鍒楁牱寮? */ tableSettypeForThree: function (sTableClassName, sTd1Class, sTd2Class, sTd3Class) { var sclassName = sTableClassName; var td1 = sTd1Class; var td2 = sTd2Class; var td3 = sTd3Class; $('.' + sclassName + ' tr td:nth-child(1)').addClass('textalign-right ' + td1); $('.' + sclassName + ' tr td:nth-child(2)').addClass('textalign-left ' + td2); $('.' + sclassName + ' tr td:nth-child(3)').addClass('textalign-left ' + td3); }, /** * 浜屽垪琛ㄦ牸鍐呭鎺掔増 * @param {string} sTableClass琛ㄦ牸鏍峰紡鍚嶇О * @param {string} sTd1Class琛ㄦ牸绗竴鍒楁牱寮? * @param {string} sTd2Class琛ㄦ牸绗簩鍒楁牱寮? */ tableSettypeForTwo: function (sTableClassName, sTd1Class, sTd2Class) { var sclassName = sTableClassName; var td1 = sTd1Class; var td2 = sTd2Class; $('.' + sclassName + ' tr td:nth-child(1)').addClass('textalign-right ' + td1); $('.' + sclassName + ' tr td:nth-child(2)').addClass('textalign-left ' + td2); }, /** * 琛ㄦ牸鍒楀唴瀹规帓鐗? * @param {string} sTableClass琛ㄦ牸鏍峰紡鍚嶇О * @param {array} aTdListClass琛ㄦ牸鏍煎垪鏍峰紡 */ tableSettype: function (sTableClass, aTdListClass) { var $table = $('.' + sTableClass); var sLength = aTdListClass.length; var sTrLength = $table.find('tr').length; if (sLength < 1) { return; } else { for (var k = 0; k < sTrLength; k++) { var $tr = $table.find('tr').eq(k); for (var i = 0, j = 0; i < sLength; i++, j++) { var dis = $tr.find('td').eq(j).css('display'); if (dis == 'none') { i = i - 1; } else { $tr.find('td').eq(j).addClass(aTdListClass[i]); } } } } }, /** * 鏁版嵁鏄剧ず鍒楄〃鏍峰紡锛岄紶鏍囧垝杩?榧犳爣鐐瑰嚮锛岃鏍峰紡 * @param {string} sTableClass琛ㄦ牸鏍峰紡鍚嶇О * 淇敼锛岀偣鍑诲悗锛岃涓摼鎺ユ棤娉曚娇鐢? * */ tableShowDataRowHover: function () { $('.dataTable tbody tr').hover( function () { $(this).children().addClass('trhover'); }, function () { $(this).children().removeClass('trhover'); } ); } } /** *绯荤粺琛ㄦ牸灏佽瀵硅薄
* 鍒涘缓琛ㄦ牸瑁呴グ琛ㄦ牸鍑芥暟锛岃鍑芥暟鐢ㄥ埌jQuery.datatable缁勪欢 */ var KGrid = new KfitGrid(); function KfitGrid() { /** * 鍒濆鍖栬〃鏍硷紝鍏ュ弬鏄竴涓璞$('#table').dataTable({鍏ュ弬});]锛屼富瑕佽缃睘鎬у涓嬶細 * ------------------------------------------------------------------- * aaData灞炴€э細琛ㄦ牸鏁版嵁婧愭敮鎸?绉嶆牸寮忥細 * {aaData: [['d00', 'd01', 'd02'],['d10', 'd11', 'd12']]} 鎴? * {aaData: [{"name1": d00, "name2": d01, "name3": d02}, {"name1": d10, "name2": d11, "name3": d12}]} * ------------------------------------------------------------------- * bPaginate灞炴€э細鏄惁鍒嗛〉鏄剧ず锛宼rue/false 榛樿锛歵rue * ------------------------------------------------------------------- * sPaginationType灞炴€э細鍒嗛〉鎸夐挳绫诲瀷锛宼wo_button / full_numbers锛岄粯璁わ細two_button * ------------------------------------------------------------------- * iDisplayLength灞炴€э細鍒嗛〉鏄剧ず鏃讹紝姣忛〉鏄剧ず鐨勬暟鎹鏁? * ------------------------------------------------------------------- * iDisplayStart灞炴€э細鍒嗛〉鏄剧ず鏃讹紝琛ㄦ牸涓暟鎹殑鍒濆浣嶇疆锛屼笉鏄〉鏁帮紝鏄鍙? * ------------------------------------------------------------------- * bLengthChange灞炴€э細鏄惁鏄剧ず閫夋嫨姣忛〉鏄剧ず琛屾暟鐨勪笅鎷夐€夋嫨鍒楄〃锛宼rue/false 榛樿锛歵rue * ------------------------------------------------------------------- * bFilter灞炴€э細鏄惁鏄剧ず杩囨护妗嗭紝true/false 榛樿锛歵rue * ------------------------------------------------------------------- * bSort灞炴€э細鏄惁鍏佽鐐瑰嚮鍒楀ご鎺掑簭锛宼rue/false 榛樿锛歵rue * ------------------------------------------------------------------- * aaSorting灞炴€? 璁剧疆琛ㄦ牸榛樿鎺掑簭锛屼互鍚庣敤鎴峰彲浠ユ洿鏀硅鐩栵紝濡備互绗?銆?鍒楁帓搴忥紙鍒楃储寮曚粠0寮€濮嬶級 * {aaSorting: [[2,'asc'], [3,'desc']]} * ------------------------------------------------------------------- * aaSortingFixed灞炴€э細璁剧疆琛ㄦ牸鍒濆鎺掑簭锛岃鎺掑簭璁剧疆鍚庯紝涓嶈兘鍐嶈鐢ㄦ埛鏇存敼瑕嗙洊 * {aaSortingFixed: [[0,'asc']]} * ------------------------------------------------------------------- * bSortCellsTop灞炴€э細褰撳琛ㄥご鏃讹紝鐐瑰嚮鍒楀ご鎺掑簭锛屾帓搴忔爣璁版槸鍚︽樉绀哄湪涓婇潰鐨勫崟鍏冩牸涓紝true/false锛?榛樿锛歠alse(涓嬭竟) * ------------------------------------------------------------------- * bSortClasses灞炴€э細鏄惁娣诲姞鏍峰紡sorting_1銆乻orting_2銆乻orting_3鍒版帓搴忚〃鏍煎垪涓婏紝true/false锛?榛樿锛歵rue * ------------------------------------------------------------------- * bInfo灞炴€э細鏄惁鏄剧ず琛ㄦ牸淇℃伅锛屽嵆锛歰Language.sInfo灞炴€х殑淇℃伅 * ------------------------------------------------------------------- * bProcessing灞炴€э細鍦ㄥ鐞嗘暟鎹椂锛堝鎺掑簭锛夛紝鏄惁鏄剧ず澶勭悊鎻愮ず淇℃伅 * ------------------------------------------------------------------- * bAutoWidth灞炴€э細鏄惁鍏佽鑷姩璁$畻鍒楀搴︼紝true/false 榛樿锛歠alse * ------------------------------------------------------------------- * aLengthMenu灞炴€? 鍒嗛〉鏄剧ず鏃讹紝姣忛〉鏄剧ず琛屾暟涓嬫媺鍒楄〃锛屼袱涓暟缁勫墠闈㈡槸瀹為檯琛屾暟锛屽悗闈㈡槸鍦ㄤ笅鎷夊垪琛ㄤ腑鏄剧ず鏂囧瓧 * {[[10, 25, 50, -1], ["鍗佽", "浜屽崄琛?, "浜斿崄琛?, "鍏ㄩ儴"]]} * ------------------------------------------------------------------- * asStripeClasses灞炴€э細 璁剧疆琛屾牱寮忥紝浠ユ暟缁勪腑鐨勬牱寮忓悕锛屼緷娆¢噸澶嶅皢鏍峰紡鍔犺浇鍒版暟鎹涓? * {"asStripeClasses": [ 'strip1', 'strip2', 'strip3' ]} * ------------------------------------------------------------------- * bDestroy灞炴€э細鏄惁閲嶆柊鍔犺浇琛ㄦ牸鍙傛暟锛歵rue/false 榛樿锛歠alse * {"bFilter": false, "bDestroy": true} * ------------------------------------------------------------------- * oLanguage灞炴€э細瀹氫箟琛ㄦ牸涓敤鐨勬枃瀛椾俊鎭紝榛樿鑻辨枃 * ------------------------------------------------------------------- * sScrollX灞炴€э細鏄剧ず姘村钩婊氬姩鏉★紝鎸囧畾姘村钩婊氬姩瀹藉害锛屽彲浠ユ槸浠绘剰CSS鍗曚綅 * {"sScrollY": "200px"} * ------------------------------------------------------------------- * sScrollY灞炴€э細鏄剧ず绔栫洿婊氬姩鏉★紝鎸囧畾绔栫洿婊氬姩楂樺害锛屽彲浠ユ槸浠绘剰CSS鍗曚綅 * ------------------------------------------------------------------- * sDom灞炴€э細鍏佽娣诲姞鍏跺畠鍏冪礌鍒拌〃鏍间腑锛屽彇鍊硷細 * l - 椤佃鏁伴€夋嫨鍒楄〃 i - 琛ㄦ牸淇℃伅 * f - 鏌ユ壘杈撳叆妗? p - 鍒嗛〉鎸夐挳 * t - 琛ㄦ牸 r - 澶勭悊淇℃伅 * H - jQueryUI "header" 鏍峰紡绫?'fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix') * F - jQueryUI "footer" 鏍峰紡绫?'fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix') * {"sDom": '<"top"i>rt<"bottom"flp><"clear">'} * ------------------------------------------------------------------- * fnCreatedRow锛歠unction(nRow, aData, iDataIndex) 褰揟R鍏冪礌琚垱寤猴紙鍏跺寘鍚殑TD涔熻鍒涘缓锛夊悗璋冪敤锛屽彲浠ュ湪璇ュ洖璋冨嚱鏁颁腑淇敼鍏冪礌鏁版嵁 * function( nRow, aData, iDataIndex ) { * if (aData[4] == "A") $('td:eq(4)', nRow).html('A'); * } * ------------------------------------------------------------------- * fnHeaderCallback鍥炶皟鍑芥暟锛岃繖浜涘嚱鏁板垎鍒湪缁樺埗鐩稿叧鍐呭鏃惰璋冪敤锛屽彲鍦ㄨ繖浜涘洖璋冨嚱鏁颁腑淇敼鍏冪礌鏁版嵁 * function( nHead, aData, iStart, iEnd, aiDisplay ) { * nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records"; * } * fnDrawCallback: function(oSettings){} * fnFooterCallback: function(nFoot, aData, iStart, iEnd, aiDisplay){} * fnInitComplete锛歠unction(oSettings, json){} * fnRowCallback锛歠unction(nRow, aData, iDisplayIndex, iDisplayIndexFull) * ------------------------------------------------------------------- * sGroupCol灞炴€э細瀵规寚瀹氬垪杩涜鍒嗙粍鏄剧ず锛宻tring 鏍煎紡锛氬垪鍚峾鍒楃储寮昜:缈昏瘧鏁版嵁瀛楀吀] * ------------------------------------------------------------------- * bSubSum灞炴€? 鏄惁瀵瑰垎缁勮繘琛屽皬璁¢渶锛宼rue/false * ------------------------------------------------------------------- * bGroupCollapse灞炴€? 鏄惁鍏佽鎶樺彔鍒嗙粍锛宼rue/false * ******************************************************************* * aoColumns灞炴€э細璇ュ睘鎬ф槸涓€涓璞★紝鍙堝寘鍚涓睘鎬э紝鍏蜂綋濡備笅锛? * ------------------------------------------------------------------- * sTitle: string 鎸囧畾璇ュ垪鐨勫垪鏍囬 * { "sTitle": "鍩洪噾鍚嶇О", "aTargets": [0]} * ------------------------------------------------------------------- * sType: string 鎸囧畾璇ュ垪鐨勬暟鎹被鍨嬶紝褰卞搷鎺掑簭鍜屾暟鎹樉绀猴紝鍖呮嫭锛?string', 'numeric', 'date' 鍜?'html' * { "sType": "html", "aTargets": [0]} * ------------------------------------------------------------------- * sWidth: string 瀹氫箟琛ㄦ牸鍒楀搴︼紝璇ュ弬鏁板彲浠ヤ换浣旵SS鍊硷紙3em, 20px 绛?. * { "sWidth": "20%", "aTargets": [0] } * ------------------------------------------------------------------- * mDataProp: string|int|function|null 鎸囧畾璇ュ垪鑾峰彇鏁版嵁鏃朵粠鍝潵璇诲彇鏁版嵁 * { "mDataProp": "browser" }, * ------------------------------------------------------------------- * bUseRendered: boolean * ------------------------------------------------------------------- * fnRender: function (o, val) 鏄剧ず璇ュ垪鍗曞厓鏍兼暟鎹椂琚皟鐢紝鐢ㄤ簬鏄剧ず鏁版嵁澶勭悊锛? * {"fnRender": function ( o, val ){return o.aData[0] +' '+ o.aData[3];},"aTargets": [0]} * ------------------------------------------------------------------- * sDefaultContent: string * 璇ュ垪鐨勯粯璁ゅ€?褰撹鍒楁暟鎹亣鍒皀ull鏃讹紝鐢ㄨ鍊兼浛鎹? * {"mDataProp": null, "sDefaultContent": "Edit", "aTargets": [ -1 ]} * ------------------------------------------------------------------- * bVisible: boolean 璁剧疆璇ュ垪鏄惁鏄剧ず * { "bVisible": false, "aTargets": [0] } * ------------------------------------------------------------------- * bSortable: boolean 鏄惁鍏佽鍦ㄨ鍒椾笂杩涜鎺掑簭锛? * { "bSortable": false, "aTargets": [0] } * ------------------------------------------------------------------- * sClass: string 璁剧疆璇ュ垪姣忎釜鍗曞厓鏍肩殑绫诲悕 * { "sClass": "my_class", "aTargets": [0] } * ------------------------------------------------------------------- * sName: string 鎸囧畾璇ュ垪鐨勫悕绉帮紝浠呯敤浜庤〃鏍肩殑鏈嶅姟鍣ㄧ澶勭悊 * { "sName": "engine", "aTargets": [0] }, * ------------------------------------------------------------------- * sSortDataType: string 瀹氫箟璇ュ垪鎺掑簭鏃惰鍙栧疄闄呮暟鎹殑鏂瑰紡锛? * { "sSortDataType": "dom-select", "aTargets": [ 4 ] }, * ------------------------------------------------------------------- * fnCreatedCell: 鍥炶皟鍑芥暟锛屽崟鍏冩牸琚垱寤哄悗璋冪敤,鍙湪璇ュ嚱鏁颁腑涓哄崟鍏冧釜璁剧疆鏍峰紡 * function (nTd, sData, oData, iRow, iCol){$(nTd).css('color', 'blue');} * ------------------------------------------------------------------- * aDataSort: array 璁剧疆澶氬垪鑱斿悎鎺掑簭锛? * { "aDataSort": [ 0, 1 ], "aTargets": [0] } * ------------------------------------------------------------------- * asSorting: array 璁剧疆璇ュ垪鐨勫垵濮嬫帓搴忔柟鍚戯細 * { "asSorting": [ "asc" ], "aTargets": [ 1 ] } * ------------------------------------------------------------------- * bSearchable: boolean 鏄惁鍏佽鍦ㄨ鍒椾笂杩涜鏁版嵁杩囨护锛? * { "bSearchable": false, "aTargets": [0] } * ------------------------------------------------------------------- * iDataSort: int 閲嶅畾鍚戞帓搴忓垪锛屽強鐐瑰嚮璇ュ垪鎸夊叾浠栧垪鎺掑簭 * { "iDataSort": 1, "aTargets": [0] } * ------------------------------------------------------------------- * sContentPadding: string * ------------------------------------------------------------------- * oDict: ListMap | array[object] 缈昏瘧琛ㄦ牸鍒椾腑鐨勬暟鎹殑鏁版嵁婧? * ------------------------------------------------------------------- * sKeyName锛歴tring | array[string] 鏁版嵁婧愪腑鐨勯敭鍊煎睘鎬у悕绉? * ------------------------------------------------------------------- * sValueName锛?鏁版嵁婧愪腑鐨勮繑鍥炲€煎睘鎬у悕绉? * ------------------------------------------------------------------- * sSumType: string KGC涓細SumType_Sum锛孲umType_Count锛孲umType_Avg锛孲umType_Min锛孲umType_Max锛孲umType_Text * 璁剧疆璇ュ垪鐨勭粺璁℃柟寮? * ------------------------------------------------------------------- * sSumText锛歴tring * 褰搒SumType = SumType_Text鏃讹紝闇€璁剧疆璇ュ睘鎬? * ------------------------------------------------------------------- * sDisplayFormat: string * 鏍煎紡鍖栨樉绀烘暟鎹紝鏀寔娴偣鏁癧#.0]锛屾棩鏈焄ymd- ymd/ ymdCN]锛屾椂闂碵hns:] * 璇ュ弬鏁颁笌oDict涓嶈兘鍚屾椂璁剧疆 * ------------------------------------------------------------------- * iScale: integer * 鏀剧缉姣斾緥锛屼粎瀵规暟鍊煎瀷鏈夋晥锛堟敞鎰忥細鏀剧缉鏃朵笉鍐嶅鍘熸暟鎹被鍨嬭繘琛屾鏌ワ紝鍋囪鏄暟鍊煎瀷锛夛紝鏄剧ず鐨勬暟鎹负锛氬師鏁版嵁 * 10鐨刬Scale娆″箓 * ------------------------------------------------------------------- * 璇ュ嚱鏁颁笉鍐嶆鏌ヤ紶鍏ュ弬鏁扮殑鏈夋晥鎬э紝鐢辫皟鐢ㄨ€呬繚璇? * * @param {string} sTableId 琛ㄦ牸鍏冪礌鐨処D锛屽繀椤绘寚瀹? * @param {string} sParentId 琛ㄦ牸鎵€鍦ㄥ厓绱狅紙鐖惰妭鐐癸級ID锛屽綋琛ㄦ牸鍏冪礌鏈垱寤烘椂蹇呴』鎸囧畾 * @param {array} aaDatas 鍦ㄨ〃鏍间腑鏄剧ず鐨勬暟鎹紝浜岀淮鏁扮粍鎴栦竴缁村璞℃暟缁勶紝涓嶅厑璁镐负绌烘暟缁勶紝鍙互鏄痭ull * @param {array} aoColumns 琛ㄦ牸鍒楀畾涔夛紝鍙傝€冧笂闈㈣鏄庯紝鍏佽涓簄ull * @param {object} oOption 鏄惁鍒嗛〉鏄剧ず锛岄粯璁や笉鍒嗛〉锛屽厑璁镐负null */ this.createGrid = function (sParentId, sTableId, aaDatas, aoColumns, oOption) { //妫€鏌ュ弬鏁帮紝sTableId銆乻ParentId蹇呴』浼犻€? if (arguments.length < 2) return null; // 鍑嗗鍙傛暟 var oOptions = KGrid.getDefaultParam(sParentId, sTableId); $.extend(oOptions, oOption); oOptions.aaData = aaDatas; oOptions.aoColumns = aoColumns; //妫€鏌ヨ〃鏍兼槸鍚﹀垱寤猴紝濡傛灉娌″垱寤哄垯鑷姩鍒涘缓琛ㄦ牸 var $table = $("#" + sTableId); if (!$table || $table.length == 0) { $("#" + sParentId).append('鍏抽棴 | '; if (i == 6) keyboard += '娓呴櫎 | '; if (i == 9) keyboard += '纭畾 | '; if (i % 3 == 0 && i > 0) keyboard += '|||
' + numArray[i] + ' | '; } keyboard += '鈫?鍥炴牸 |
' + otherArray[i] + ' | '; } keyboard += '||||||
' + numArray[i] + ' | '; } keyboard += '鈫?鍥炴牸 | |||||
澶у皬鍐?/td>'; if (i == 20) keyboard += ' | 娓呴櫎 | '; if (i % 10 == 0 && i > 0) keyboard += '|||||
' + charArray[i] + ' | '; } keyboard += '鍏抽棴 | 纭畾 |