The validator won't check non-exists fields.

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8493 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2011-06-16 01:25:08 +00:00
parent 846a55b11c
commit d904eb32f5
3 changed files with 18 additions and 9 deletions

View file

@ -1186,6 +1186,11 @@ function setCookie(name, value, expire, path) {
document.cookie = s_cookie;
}
function getCookie(name) {
var match = document.cookie.match(new RegExp(name+'=(.*?);'));
if(match) return unescape(match[1]);
}
function is_def(v) {
return (typeof(v)!='undefined');
}
@ -1777,6 +1782,8 @@ var Validator = xe.createApp('Validator', {
val = el?$.trim(get_value($(el))):'';
mod = (f.modifier||'')+',';
if(!el) continue;
if(!val) {
if(f['default']) val = f['default'];
if(f.required) return this.cast('ALERT', [form, name, 'isnull']) && false;

18
common/js/xe.min.js vendored
View file

@ -11,7 +11,7 @@ getApp:function(a){a=(a||"").toLowerCase();return typeof g[a]!="undefined"?g[a]:
_broadcast:function(a,c,b){for(var d=0;d<g.length;d++)g[d]._cast(a,c,b);this._cast(a,c,b)}});window.xe.lang={};a(function(){xe.broadcast("ONREADY")});a(window).load(function(){xe.broadcast("ONLOAD")})})(jQuery);jQuery&&jQuery.noConflict();
(function(a){var b=navigator.userAgent.toLowerCase();a.os={Linux:/linux/.test(b),Unix:/x11/.test(b),Mac:/mac/.test(b),Windows:/win/.test(b)};a.os.name=a.os.Windows?"Windows":a.os.Linux?"Linux":a.os.Unix?"Unix":a.os.Mac?"Mac":"";window.XE={loaded_popup_menus:[],addedDocument:[],checkboxToggleAll:function(){var b="cart",c={wrap:null,checked:"toggle",doClick:!1};switch(arguments.length){case 1:typeof arguments[0]=="string"?b=arguments[0]:a.extend(c,arguments[0]||{});break;case 2:b=arguments[0],a.extend(c,
arguments[1]||{})}if(c.doClick==!0)c.checked=null;if(typeof c.wrap=="string")c.wrap="#"+c.wrap;b=c.wrap?a(c.wrap).find("input[name="+b+"]:checkbox"):a("input[name="+b+"]:checkbox");c.checked=="toggle"?b.each(function(){a(this).attr("checked",a(this).attr("checked")?!1:!0)}):c.doClick==!0?b.click():b.attr("checked",c.checked)},displayPopupMenu:function(b,c,g){var c=g.menu_id,e=b.menus,b="";if(this.loaded_popup_menus[c])b=this.loaded_popup_menus[c];else{if(e){e=e.item;if(typeof e.length=="undefined"||
e.length<1)e=Array(e);if(e.length)for(var k=0;k<e.length;k++){var j=e[k].url,l=e[k].str,m=e[k].icon,h=e[k].target,n="",r="";m&&(n=" style=\"background-image:url('"+m+"')\" ");switch(h){case "popup":r=" onclick=\"popopen(this.href,'"+h+"'); return false;\"";break;case "self":break;case "javascript":r=' onclick="'+j+'; return false; "';j="#";break;default:r=' onclick="window.open(this.href); return false;"'}b+="<li "+n+'><a href="'+j+'"'+r+">"+l+"</a></li> "}}this.loaded_popup_menus[c]=b}if(b){c=a("#popup_menu_area").html("<ul>"+
e.length<1)e=Array(e);if(e.length)for(var k=0;k<e.length;k++){var j=e[k].url,l=e[k].str,m=e[k].icon,h=e[k].target,n="",q="";m&&(n=" style=\"background-image:url('"+m+"')\" ");switch(h){case "popup":q=" onclick=\"popopen(this.href,'"+h+"'); return false;\"";break;case "self":break;case "javascript":q=' onclick="'+j+'; return false; "';j="#";break;default:q=' onclick="window.open(this.href); return false;"'}b+="<li "+n+'><a href="'+j+'"'+q+">"+l+"</a></li> "}}this.loaded_popup_menus[c]=b}if(b){c=a("#popup_menu_area").html("<ul>"+
b+"</ul>");g={top:g.page_y,left:g.page_x};if(c.outerHeight()+g.top>a(window).height()+a(window).scrollTop())g.top=a(window).height()-c.outerHeight()+a(window).scrollTop();if(c.outerWidth()+g.left>a(window).width()+a(window).scrollLeft())g.left=a(window).width()-c.outerWidth()+a(window).scrollLeft();c.css({top:g.top,left:g.left}).show()}}}})(jQuery);
jQuery(function(a){a.browser.msie&&a("select").each(function(a,b){for(var e=!1,d=[],j=0;j<b.options.length;j++)b.options[j].disabled?(b.options[j].style.color="#CCCCCC",e=!0):d[a]=d[a]>-1?d[a]:j;if(e&&(b.oldonchange=b.onchange,b.onchange=function(){this.options[this.selectedIndex].disabled?this.selectedIndex=d[a]:this.oldonchange&&this.oldonchange()},b.selectedIndex>=0&&b.options[b.selectedIndex].disabled))b.onchange()});var b=a(".xe_content .fold_button");if(b.size()){var d=a("div.fold_container",
b);a("button.more",b).click(function(){a(this).hide().next("button").show().parent().next(d).show()});a("button.less",b).click(function(){a(this).hide().prev("button").show().parent().next(d).hide()})}});String.prototype.getQuery=function(a){var b=this.indexOf("?");if(b==-1)return null;var d={};this.substr(b+1,this.length).replace(/([^=]+)=([^&]*)(&|$)/g,function(a,b,e){d[b]=e});a=d[a];typeof a=="undefined"&&(a="");return a};
@ -42,7 +42,7 @@ a.length;)d=this._keyStr.indexOf(a.charAt(j++)),c=this._keyStr.indexOf(a.charAt(
if(typeof resizeImageContents=="undefined")var resizeImageContents=function(){};if(typeof activateOptionDisabled=="undefined")var activateOptionDisabled=function(){};objectExtend=jQuery.extend;function toggleDisplay(a){jQuery("#"+a).toggle()}function checkboxSelectAll(a,b,d){var c={};if(typeof a!="undefined")c.wrap=a;if(typeof d!="undefined")c.checked=d;XE.checkboxToggleAll(b,c)}function clickCheckBoxAll(a,b){var d={doClick:!0};if(typeof a!="undefined")d.wrap=a;XE.checkboxToggleAll(b,d)}
function svc_folder_open(a){jQuery("#_folder_open_"+a).hide();jQuery("#_folder_close_"+a).show();jQuery("#_folder_"+a).show()}function svc_folder_close(a){jQuery("#_folder_open_"+a).show();jQuery("#_folder_close_"+a).hide();jQuery("#_folder_"+a).hide()}function open_calendar(a,b,d){typeof b=="undefined"&&(b="");var c="./common/tpl/calendar.php?";a&&(c+="fo_id="+a);b&&(c+="&day_str="+b);d&&(c+="&callback_func="+d);popopen(c,"Calendar")}var loaded_popup_menus=XE.loaded_popup_menus;
function createPopupMenu(){}function chkPopupMenu(){}function displayPopupMenu(a,b,d){XE.displayPopupMenu(a,b,d)}function GetObjLeft(a){return jQuery(a).offset().left}function GetObjTop(a){return jQuery(a).offset().top}function replaceOuterHTML(a,b){jQuery(a).replaceWith(b)}function getOuterHTML(a){return jQuery(a).html().trim()}function setCookie(a,b,d,c){a=a+"="+escape(b)+(!d?"":"; expires="+d.toGMTString())+"; path="+(!c?"/":c);document.cookie=a}
function is_def(a){return typeof a!="undefined"}function ucfirst(a){return a.charAt(0).toUpperCase()+a.slice(1)}function get_by_id(a){return document.getElementById(a)}
function getCookie(a){if(a=document.cookie.match(RegExp(a+"=(.*?);")))return unescape(a[1])}function is_def(a){return typeof a!="undefined"}function ucfirst(a){return a.charAt(0).toUpperCase()+a.slice(1)}function get_by_id(a){return document.getElementById(a)}
jQuery(function(a){a(".lang_code").each(function(){var b=a(this),d=b.attr("id");typeof d=="undefined"&&(d=b.attr("name"));typeof d!="undefined"&&b.after("<a href='"+request_uri.setQuery("module","module").setQuery("act","dispModuleAdminLangcode").setQuery("target",d)+"' class='buttonSet buttonSetting' onclick='popopen(this.href);return false;'><span>find_langcode</span></a>")});a(document).click(function(b){var d=a("#popup_menu_area");d.length||(d=a('<div id="popup_menu_area" style="display:none;z-index:9999" />').appendTo(document.body));
d.hide();d=a(b.target).filter("a,div,span");d.length||(d=d.parents("a,div,span").eq(0));if(d.length){var d=d.attr("class"),c;d&&(c=d.match(/(?:^| )((document|comment|member)_([1-9]\d*))(?: |$)/));if(c){d="get"+ucfirst(c[2])+"Menu";b={mid:current_mid,cur_mid:current_mid,menu_id:c[1],target_srl:c[3],cur_act:current_url.getQuery("act"),page_x:b.pageX,page_y:b.pageY};c="error message menus".split(" ");if(is_def(window.xeVid))b.vid=xeVid;if(is_def(XE.loaded_popup_menus[b.menu_id]))return XE.displayPopupMenu(b,
c,b)&&!1;show_waiting_message=!1;exec_xml("member",d,b,XE.displayPopupMenu,c,b);show_waiting_message=!0;return!1}}});a("a._xe_popup").click(function(){var b=a(this),d=b.attr("name"),b=b.attr("href");d||(d="_xe_popup_"+Math.floor(Math.random()*1E3));(d=window.open(b,d,"left=10,top=10,width=10,hegiht=10,resizable=no,scrollbars=no,toolbars=no"))&&d.focus();return!1})});var show_waiting_message=!0;
@ -53,19 +53,19 @@ d:m.join(""))+"}"}else g+=typeof a=="string"?(b&&":")+'"'+a.toString()+'"':(b&&"
a.nodeType==4&&(b+="<![CDATA["+a.nodeValue+"]]\>");return b},a=a.firstChild;a;a=a.nextSibling)b+=c(a);return b},escape:function(a){return a.replace(/[\\]/g,"\\\\").replace(/[\"]/g,'\\"').replace(/[\n]/g,"\\n").replace(/[\r]/g,"\\r")},removeWhite:function(a){a.normalize();for(var b=a.firstChild;b;)if(b.nodeType==3)if(b.nodeValue.match(/[^ \f\n\r\t\v]/))b=b.nextSibling;else{var d=b.nextSibling;a.removeChild(b);b=d}else b.nodeType==1&&c.removeWhite(b),b=b.nextSibling;return a}};if(a.nodeType==9)a=a.documentElement;
var g=c.toObj(c.removeWhite(a));typeof JSON=="object"&&jQuery.isFunction(JSON.stringify);a=c.toJson(g,a.nodeName,"");return"{"+(b?a.replace(/\t/g,b):a.replace(/\t|\n/g,""))+"}"}
(function(a){function b(b,d){a("#xeTmpIframe").length||a('<iframe name="%id%" id="%id%" style="position:absolute;left:-1px;top:1px;width:1px;height:1px"></iframe>'.replace(/%id%/g,"xeTmpIframe")).appendTo(document.body);a("#xeVirtualForm").remove();var e=a('<form id="%id%"></form>'.replace(/%id%/g,"xeVirtualForm")).attr({id:"xeVirtualForm",method:"post",action:b,target:"xeTmpIframe"});d.xeVirtualRequestMethod="xml";d.xeRequestURI=location.href.replace(/#(.*)$/i,"");d.xeVirtualRequestUrl=request_uri;
a.each(d,function(b,c){a('<input type="hidden">').attr("name",b).attr("value",c).appendTo(e)});e.appendTo(document.body).submit()}function d(a){var b={},d;for(d in a)a.hasOwnProperty(d)&&(b[d]=a[d]);return b}a.exec_xml=window.exec_xml=function(c,g,e,k,j,l,m){function h(b){var b=a(b).find("response")[0],d,e="",h=[],n={};d="";o.css("visibility","hidden");if(!b)return alert(q.responseText),null;d=xml2json(b,!1,!1);d=typeof JSON=="object"&&a.isFunction(JSON.parse)?JSON.parse(d):eval("("+d+")");d=d.response;
if(typeof d=="undefined"){h.error=-1;h.message="Unexpected error occured.";try{if(typeof(e=b.childNodes[0].firstChild.data)!="undefined")h.message+="\r\n"+e}catch(r){}return h}a.each(j,function(a,b){n[b]=!0});n.redirect_url=!0;n.act=!0;a.each(d,function(a,b){n[a]&&(h[a]=b)});if(h.error!=0){if(a.isFunction(a.exec_xml.onerror))return a.exec_xml.onerror(c,g,h,k,j,l,m);alert(h.message||"error!");return null}if(h.redirect_url)return location.href=h.redirect_url.replace(/&amp;/g,"&"),null;a.isFunction(k)&&
k(h,j,l,m)}var n=request_uri+"index.php";e||(e={});a.isArray(e)&&(e=d(e));e.module=c;e.act=g;typeof xeVid!="undefined"&&(e.vid=xeVid);typeof j=="undefined"||j.length<1?j=["error","message"]:j.push("error","message");if(a.isArray(ssl_actions)&&e.act&&a.inArray(e.act,ssl_actions)>=0){var n=window.https_port||443,r=a("<a>").attr("href",default_url||request_uri)[0],w="https://"+r.hostname.replace(/:\d+$/,"");n!=443&&(w+=":"+n);r.pathname[0]!="/"&&(w+="/");w+=r.pathname;n=w.replace(/\/$/,"")+"/index.php"}r=
a("<a>").attr("href",location.href)[0];w=a("<a>").attr("href",n)[0];if(r.protocol!=w.protocol||r.port!=w.port)return b(n,e);var t=[],p=0;t[p++]='<?xml version="1.0" encoding="utf-8" ?>';t[p++]="<methodCall>";t[p++]="<params>";a.each(e,function(a,b){t[p++]="<"+a+"><![CDATA["+b+"]]\></"+a+">"});t[p++]="</params>";t[p++]="</methodCall>";var q=null;q&&q.readyState!=0&&q.abort();try{a.ajax({url:n,type:"POST",dataType:"xml",data:t.join("\n"),contentType:"text/plain",beforeSend:function(a){q=a},success:h,
a.each(d,function(b,c){a('<input type="hidden">').attr("name",b).attr("value",c).appendTo(e)});e.appendTo(document.body).submit()}function d(a){var b={},d;for(d in a)a.hasOwnProperty(d)&&(b[d]=a[d]);return b}a.exec_xml=window.exec_xml=function(c,g,e,k,j,l,m){function h(b){var b=a(b).find("response")[0],d,e="",h=[],n={};d="";o.css("visibility","hidden");if(!b)return alert(r.responseText),null;d=xml2json(b,!1,!1);d=typeof JSON=="object"&&a.isFunction(JSON.parse)?JSON.parse(d):eval("("+d+")");d=d.response;
if(typeof d=="undefined"){h.error=-1;h.message="Unexpected error occured.";try{if(typeof(e=b.childNodes[0].firstChild.data)!="undefined")h.message+="\r\n"+e}catch(q){}return h}a.each(j,function(a,b){n[b]=!0});n.redirect_url=!0;n.act=!0;a.each(d,function(a,b){n[a]&&(h[a]=b)});if(h.error!=0){if(a.isFunction(a.exec_xml.onerror))return a.exec_xml.onerror(c,g,h,k,j,l,m);alert(h.message||"error!");return null}if(h.redirect_url)return location.href=h.redirect_url.replace(/&amp;/g,"&"),null;a.isFunction(k)&&
k(h,j,l,m)}var n=request_uri+"index.php";e||(e={});a.isArray(e)&&(e=d(e));e.module=c;e.act=g;typeof xeVid!="undefined"&&(e.vid=xeVid);typeof j=="undefined"||j.length<1?j=["error","message"]:j.push("error","message");if(a.isArray(ssl_actions)&&e.act&&a.inArray(e.act,ssl_actions)>=0){var n=window.https_port||443,q=a("<a>").attr("href",default_url||request_uri)[0],w="https://"+q.hostname.replace(/:\d+$/,"");n!=443&&(w+=":"+n);q.pathname[0]!="/"&&(w+="/");w+=q.pathname;n=w.replace(/\/$/,"")+"/index.php"}q=
a("<a>").attr("href",location.href)[0];w=a("<a>").attr("href",n)[0];if(q.protocol!=w.protocol||q.port!=w.port)return b(n,e);var t=[],p=0;t[p++]='<?xml version="1.0" encoding="utf-8" ?>';t[p++]="<methodCall>";t[p++]="<params>";a.each(e,function(a,b){t[p++]="<"+a+"><![CDATA["+b+"]]\></"+a+">"});t[p++]="</params>";t[p++]="</methodCall>";var r=null;r&&r.readyState!=0&&r.abort();try{a.ajax({url:n,type:"POST",dataType:"xml",data:t.join("\n"),contentType:"text/plain",beforeSend:function(a){r=a},success:h,
error:function(a,b){o.css("visibility","hidden");var c="";if(b=="parsererror"){c="The result is not valid XML :\n-------------------------------------\n";if(a.responseText=="")return;c+=a.responseText.replace(/<[^>]+>/g,"")}else c=b;alert(c)}})}catch(s){alert(s);return}var o=a("#waitingforserverresponse");show_waiting_message&&o.length&&(e=a(document),o.html(waiting_message).css({top:e.scrollTop()+20+"px",left:e.scrollLeft()+20+"px",visibility:"visible"}))};a.exec_json=function(b,d,e){typeof d=="undefined"&&
(d={});b=b.split(".");b.length==2&&(show_waiting_message&&a("#waitingforserverresponse").html(waiting_message).css("top",a(document).scrollTop()+20).css("left",a(document).scrollLeft()+20).css("visibility","visible"),a.extend(d,{module:b[0],act:b[1]}),typeof xeVid!="undefined"&&a.extend(d,{vid:xeVid}),a.ajax({type:"POST",dataType:"json",url:request_uri,contentType:"application/json",data:a.param(d),success:function(b){a("#waitingforserverresponse").css("visibility","hidden");b.error>0&&alert(b.message);
a.isFunction(e)&&e(b)}}))};a.fn.exec_html=function(b,d,e,k,j){typeof d=="undefined"&&(d={});a.inArray(e,["html","append","prepend"])||(e="html");var l=a(this),b=b.split(".");b.length==2&&(show_waiting_message&&a("#waitingforserverresponse").html(waiting_message).css("top",a(document).scrollTop()+20).css("left",a(document).scrollLeft()+20).css("visibility","visible"),a.extend(d,{module:b[0],act:b[1]}),a.ajax({type:"POST",dataType:"html",url:request_uri,data:a.param(d),success:function(b){a("#waitingforserverresponse").css("visibility",
"hidden");l[e](b);a.isFunction(k)&&k(j)}}))}})(jQuery);
(function(a){function b(a){var b=[];return a.is(":radio")?a.filter(":checked").val():a.is(":checkbox")?(a.filter(":checked").each(function(){b.push(this.value)}),b.join("|@|")):a.val()}var d=[],c=[],g=[],e=[],k={},j=new (xe.createApp("Validator",{init:function(){var a=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;this.cast("ADD_RULE",["email",a]);this.cast("ADD_RULE",["email_address",a]);a=/^[a-z]+[\w-]*[a-z0-9_]+$/i;this.cast("ADD_RULE",["userid",a]);this.cast("ADD_RULE",["user_id",a]);a=/^(https?|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-\/\~]+)+(:[0-9]{2,4})*$/;
this.cast("ADD_RULE",["url",a]);this.cast("ADD_RULE",["homepage",a]);this.cast("ADD_RULE",["korean",/^[\uac00-\ud7a3]*$/]);this.cast("ADD_RULE",["korean_number",/^[\uac00-\ud7a30-9]*$/]);this.cast("ADD_RULE",["alpha",/^[a-z]*$/i]);this.cast("ADD_RULE",["alpha_number",/^[a-z][a-z0-9_]*$/i]);this.cast("ADD_RULE",["number",/^[0-9]*$/])},run:function(a){var b="";if(a._filter)b=a._filter.value;a=this.cast("VALIDATE",[a,b]);typeof a=="undefined"&&(a=!1);return a},API_ONREADY:function(){var b=this;a("form").each(function(){if(this.onsubmit)this["xe:onsubmit"]=
this.onsubmit,this.onsubmit=null}).submit(function(){var c=this["xe:onsubmit"];return a.isFunction(c)?c.apply(this):b.run(this)})},API_VALIDATE:function(c,d){var n=!0,j=d[0],l=null,t=null,p,q,s,o,u,v,y,x;if(j.elements._filter)l=j.elements._filter.value;if(!l)return!0;a.isFunction(e[l])&&(t=e[l]);l=a.extend({},g[l.toLowerCase()]||{},k);for(p in l)if(l.hasOwnProperty(p)){f=l[p];q=(q=j.elements[p])?a.trim(b(a(q))):"";s=(f.modifier||"")+",";if(!q)if(f.required)return this.cast("ALERT",[j,p,"isnull"])&&
!1;else continue;v=parseInt(f.minlength)||0;u=parseInt(f.maxlength)||0;x=/b$/.test(f.minlength||"");y=/b$/.test(f.maxlength||"");n=q.length;if(x||y)if(o=q,o+="",o.length){o=encodeURI(o);var z=o.split("%").length-1;o=o.length-z*2}else o=0;if(v&&v>(x?o:n)||u&&u<(y?o:n))return this.cast("ALERT",[j,p,"outofrange",v,u])&&!1;if(f.equalto&&(u=(n=j.elements[f.equalto])?a.trim(b(a(n))):"",n&&u!==q))return this.cast("ALERT",[j,p,"equalto"])&&!1;u=(f.rule||"").split(",");v=0;for(y=u.length;v<y;v++)if(x=u[v])if(n=
this.cast("APPLY_RULE",[x,q]),s.indexOf("not,")>-1&&(n=!n),!n)return this.cast("ALERT",[j,p,"invalid_"+x])&&!1}if(a.isFunction(t))return t(j);return!0},API_ADD_RULE:function(a,b){var d=b[0].toLowerCase();c[d]=b[1]},API_DEL_RULE:function(a,b){var d=b[0].toLowerCase();delete c[d]},API_GET_RULE:function(a,b){var d=b[0].toLowerCase();return c[d]?c[d]:null},API_ADD_FILTER:function(a,b){var c=b[0].toLowerCase();g[c]=b[1]},API_DEL_FILTER:function(a,b){var c=b[0].toLowerCase();delete g[c]},API_GET_FILTER:function(a,
this.onsubmit,this.onsubmit=null}).submit(function(){var c=this["xe:onsubmit"];return a.isFunction(c)?c.apply(this):b.run(this)})},API_VALIDATE:function(c,d){var n=!0,j=d[0],l=null,t=null,p,r,s,o,u,v,y,x;if(j.elements._filter)l=j.elements._filter.value;if(!l)return!0;a.isFunction(e[l])&&(t=e[l]);l=a.extend({},g[l.toLowerCase()]||{},k);for(p in l)if(l.hasOwnProperty(p)&&(f=l[p],r=(n=j.elements[p])?a.trim(b(a(n))):"",s=(f.modifier||"")+",",n)){if(!r)if(f.required)return this.cast("ALERT",[j,p,"isnull"])&&
!1;else continue;v=parseInt(f.minlength)||0;u=parseInt(f.maxlength)||0;x=/b$/.test(f.minlength||"");y=/b$/.test(f.maxlength||"");n=r.length;if(x||y)if(o=r,o+="",o.length){o=encodeURI(o);var z=o.split("%").length-1;o=o.length-z*2}else o=0;if(v&&v>(x?o:n)||u&&u<(y?o:n))return this.cast("ALERT",[j,p,"outofrange",v,u])&&!1;if(f.equalto&&(u=(n=j.elements[f.equalto])?a.trim(b(a(n))):"",n&&u!==r))return this.cast("ALERT",[j,p,"equalto"])&&!1;u=(f.rule||"").split(",");v=0;for(y=u.length;v<y;v++)if(x=u[v])if(n=
this.cast("APPLY_RULE",[x,r]),s.indexOf("not,")>-1&&(n=!n),!n)return this.cast("ALERT",[j,p,"invalid_"+x])&&!1}if(a.isFunction(t))return t(j);return!0},API_ADD_RULE:function(a,b){var d=b[0].toLowerCase();c[d]=b[1]},API_DEL_RULE:function(a,b){var d=b[0].toLowerCase();delete c[d]},API_GET_RULE:function(a,b){var d=b[0].toLowerCase();return c[d]?c[d]:null},API_ADD_FILTER:function(a,b){var c=b[0].toLowerCase();g[c]=b[1]},API_DEL_FILTER:function(a,b){var c=b[0].toLowerCase();delete g[c]},API_GET_FILTER:function(a,
b){var c=b[0].toLowerCase();return g[c]?g[c]:null},API_ADD_EXTRA_FIELD:function(a,b){var c=b[0].toLowerCase();k[c]=b[1]},API_GET_EXTRA_FIELD:function(a,b){var c=b[0].toLowerCase();return k[c]},API_DEL_EXTRA_FIELD:function(a,b){var c=b[0].toLowerCase();delete k[c]},API_APPLY_RULE:function(b,d){var e=d[0],g=d[1];if(typeof c[e]=="undefined")return!0;if(a.isFunction(c[e]))return c[e](g);if(c[e]instanceof RegExp)return c[e].test(g);if(a.isArray(c[e]))return a.inArray(g,c[e])>-1;return!0},API_ALERT:function(b,
c){var d=c[0],e=c[1],g=c[2],j=c[3],k=c[4],l=this.cast("GET_MESSAGE",[e]),s=this.cast("GET_MESSAGE",[g]);s!=g&&(s=s.indexOf("%s")<0?l+s:s.replace("%s",l));if(j||k)s+="("+(j||"")+"~"+(k||"")+")";this.cast("SHOW_ALERT",[s]);a(d.elements[e]).focus()},API_SHOW_ALERT:function(a,b){alert(b[0])},API_ADD_MESSAGE:function(a,b){d[b[0]]=b[1]},API_GET_MESSAGE:function(a,b){var c=b[0];return d[c]||c},API_ADD_CALLBACK:function(a,b){e[b[0]]=b[1]},API_REMOVE_CALLBACK:function(a,b){delete e[b[0]]}}));xe.registerApp(j);
var l=xe.createPlugin("editor_stub",{API_BEFORE_VALIDATE:function(a,b){var c=b[0].getAttribute("editor_sequence");if(c&&typeof c=="object")c=c.value;if(c)try{editorRelKeys[c].content.value=editorRelKeys[c].func(c)||""}catch(d){}}});j.registerPlugin(new l)})(jQuery);

View file

@ -101,6 +101,8 @@ var Validator = xe.createApp('Validator', {
val = el?$.trim(get_value($(el))):'';
mod = (f.modifier||'')+',';
if(!el) continue;
if(!val) {
if(f['default']) val = f['default'];
if(f.required) return this.cast('ALERT', [form, name, 'isnull']) && false;