(函数(N){风险F,E;如果(typeof运算外延== “未定义” || typeof运算epi.EPiServer == “未定义” || typeof运算epi.EPiServer.Forms == “未定义”){console.error(“表格未正确初始化”);返回}如果(typeof运算n ==可 “未定义”){console.error( “形式可以不jQuery的不工作”);返回} F =函数(N,I){如果(此。workingFormInfo = i.workingFormInfo,this.dependantInfo = N,这个。$一个DOMElement = t.getFormElementBlock(n.fieldName,this.workingFormInfo。$ workingForm),this.onDependencyStateChanged = i.onDependencyStateChanged,this.dependency =新epi.EPiServer。Forms.Dependency.Dependant(N,i.workingFormInfo),this._registerEventListener(this.dependency),this.isSatisfied = this.dependency.isSatisfied的typeof this.onDependencyStateChanged == “功能”)this.onDependencyStateChanged(这一点。$一个DOMElement,this.dependantInfo,this.isSatisfied); this.check()}; f.prototype = {_ registerEventListener:函数(T){风险I =此; N(T)。对( “变化”,功能(N,T){i.onDependencyChangeHandler.call(I,T)})},onDependencyChangeHandler:函数(T){如果(this.isSatisfied ==吨.isSatisfied){如果(this.isSatisfied = t.isSatisfied,this._executeAction()的typeof this.onDependencyStateChanged == “功能”)this.onDependencyStateChanged(此$一个DOMElement,this.dependantInfo,this.isSatisfied); N(这$一个DOMElement).trigger( “formsDependencyStateChanged”)}},检查:函数(){this.dependency.runCheck()},_ executeAction:函数(){如果(this.dependantInfo.action){VAR N =外延。EPiServer.Forms.Dependency.Actions,T = this.dependantInfo.action.clientsideAction; N [T] && typeof运算N [吨] == “功能” && N [T](本)}}}; E =函数(N,T){this.workingFormInfo = T; this.conditions = n.conditions; this.conditionCombination = n.conditionCombination; this.isSatisfied = NULL; this._registerEventListener()}; e.prototype = {_ registerEventListener:函数(){风险我,F,R,U;若(this.conditions &&(this.conditions.length <= 0)!)对于(I =此,F = [],R = 0; R <\/div>").text(t).html()},htmlDecodeEntities:function(n){var t=document.createElement("textarea");return t.n innerhtml =n, t.n value},isMatchedReg:function(n,t){try{var r=new RegExp(t),i= r.c eexec (n)u = n.extend(! 0,{类型:“形式”,workingFormInfo: t},我),r; t ? t。美元workingForm.triggerHandler (u): (r = n(“.EPiServerForms: eq(0)、(data-f-type =“形式”):第一”),(! r | | r.length < 1) & & (r = n(“身体”)),r.triggerHandler (u))}, injectVisitorData:函数r (t) {var = n(”。FormHidden [data-epiforms-visitordatasources],[data-f-visitordatasources]”,t。workingForm美元),我;r&&r.length ! = = 0 & & (i = null, r.each(函数(){如果(i = n(这),i&&i.length > 0) {var t = null, r = i.data (epiforms-visitordatasources) | | i.data(“f-visitordatasources”);n (r.split (", ")) . each(函数(n, r) {t = epi.EPiServer.Forms.VisitorData [r]; typeof t = =“功能”t (i)})}}))}, isElementType:函数(n, t){返回n.data (f型)= = = t}, getElementName:函数(n){返回n.attr(“名字”)| | n.data (epiforms-element-name) | | n.data (f-element-name)}, getElementValue:函数(i){返回i.hasClass (FormFileUpload) | | t.isElementType(我,“类”)? t.getPreviousPostedFiles(我):i.hasClass (FormChoice) | | t.isElementType(我,“选择”)? i.find(”。FormChoice__Input:检查,[data-f-datainput]:检查”). map(函数(t, i){返回n (i) .val ()}) . get (): i.hasClass (FormSelection) | | t.isElementType(我,“选择”)? [].concat (i.find(“选择”).val ()): i.hasClass (FormCaptcha) | | i.hasClass (FormTextbox) | | i.hasClass(“FormTextbox——文本区域”)| | t.isElementType(我,“验证码”)| | t.isElementType(我,“文本框”)? n.trim (n(“。FormTextbox__Input [data-f-datainput]”,我).val ()): i.hasClass (FormRange) | | t.isElementType(我,“范围”)? n.trim (n(“。FormRange__Input [data-f-datainput]”,我).val ()): i.hasClass (Form__CustomElement) | | t.isElementType(我,“自定义”)? epi.EPiServer.Forms.Extension.getCustomElementValue(我):n.trim (i.val ())}, getFormStepBlock:函数(n, i){返回控制台。警告(“这是过时了。使用getFormElementBlock()代替"),t.getFormElementBlock(n,i)},getFormElementBlock:function(t,i){if(!t)return[];Form__Element [data-epiforms-element-name = ' " + t + " ']”,我),返回r&&r.length | | (r = n(“[data-f-element-name = ' " + t + " ']”,i)), r}, getWorkingFormFromInnerElement:函数(t){返回n (t) .parents(”。},getFormIdentifier:function(n){return n.prop("id")},getPreviousPostedFiles:function(i){var r=i.find(". value ");FormFileUpload__Input,[data-f-datainput]”),f = t.getElementName (r), e = t.getWorkingFormFromInnerElement (r), o = epi.EPiServer.Forms.Utils.getFormIdentifier (e), s = epi.EPiServer.Forms.Data.loadFormDataFromStorage (o), u = r [0] .files;返回n.each(年代,函数(n, t){如果(n.indexOf(“__TempData”)! = 1 &&n.replace(“__TempData”、" ")= = f&&u.length = = 0)u = t ! 1}), u}, getCurrentStepIndex:函数(t) {var = n(“输入[name = __FormCurrentStepIndex]”,t。workingForm美元).val (); i===undefined||i.trim()===""||isNaN(+i)||+i>t.StepsInfo.Steps.length-1?t.StepsInfo.AllStepsAreNotLinked?i=0:n.each(t.StepsInfo.Steps,function(n,u){if(u.attachedContentLink==epi.EPiServer.CurrentPageLink&&r.isStepSatisfyDependentCondition(u,t))return i=n,!1}):i=+i,i},setCurrentStepIndex:function(t,i){return n("input[name=__FormCurrentStepIndex]",t.$workingForm).val(i),i},validateRegularExpressionValidator:function(n,i,r){if(!r||!r.model||!r.model.jsPattern||i==="")return{isValid:!0};if(!t.isMatchedReg(i,r.model.jsPattern)){var u=t.stringFormat(r.model.message,[r.model.jsPattern,r.description]);return{isValid:!1,message:u}}return{isValid:!0}},showNextStepOnEnterKeyDown:function(i){var u=t.getWorkingFormFromInnerElement(i.target),f=i.keyCode,r=n(".Form__NavigationBar .Form__NavigationBar__Action.btnNext, [data-f-type='navigationbar'] [data-f-navigation-next]",u),e=n(".Form__Element.FormSubmitButton, [data-f-type='submitbutton']",u).parent(".FormStep, [data-f-type='step']").filter(function(){return!n(this).hasClass("hide")});return f==13&&e.length==0&&r!=null&&r.length?(i.preventDefault(),i.stopPropagation(),r.trigger("click"),!0):!0},scrollToTheTopOfForm:function(t){t!=null&&t.css("position").toLowerCase()!=="fixed"&&n(document).scrollTop()>0&&window.scrollTo(0,t.offset().top)}},Extension:{getSummarizedText:function(i,r,u){var h=u?"
“:”\ n“,y = u?i.confirmmessage:t.htmldecodeentities(i.confirmmessage),c = i.elementsinfo,l = [],a = [],p = [__ formguid”,“__ formlanguage”, “__ FormCurrentStepIndex”, “__ FormSubmissionId”],v = i.ConfirmMessage Y + H + H: “”,S =空,F = NULL,E,O;对于(在r中e)如(l.indexOf(E?.replace(“__ tempdata”,“”))== - 1){if(o = e.indexof(“__ tempdata”)!= - 1?c [e.replace(“__ tempdata”,“”):c[e],s = o && o.friendlyname?o.friendlyname:“”,f = o && o.custombinding ==!0?epi.episerver.forms.custombIndingElements [o.type](o,r [e]):r [e],(f == null || f instanceof artrant&f.length === 0 || n.isumpyObject(f))&&(f =“”),f instanceof数组?f = n.map(f,function(f)n){return n?typeof n ==“string”?n:typeof n ==“对象”?n.name:void 0:null})。加入(“,”):f instansof filelist && f.length == 0?f =“”:( f = f.tostring()。substr(0,46).trim(),f.length> = 45 &&(f + =“...”)),n(“[name =”+ e + e +“]”,我。$工作表).hasclass(“formhideInsummarized”)&& a.push(e),s ==“|| s == null || f ==”“|| f == null || p.indexof(e)> = 0 || a.indexof(e)> = 0)继续; else l.push(e); v + = u?t.stringformat(“{0}:{1}”+h,[t.htmlencodeentities(s),t.htmlenCoceentities(F)]):T.StringFormat(“{0}:{1}”+ h,[t.htmldeCodeentities,f])} return v},showsummarizedtext:函数(t,i){var r= n.Deferred()中,u = this.getSummarizedText(I,T,1!)中,f;!?!返回ù|| u.trim()=== “”(r.resolve(0)中,r。promise()):( f =确认(u),r.resolve(f),r.promise())},getCustomElementValue:函数(n){return n.val()|| n.find(“[数据-f-datainpul]“)。val(),bindcustomelementtvalue:函数(n,t){var i = n.find(”form_custominput,[data-f-datainpul]); i.val(t)},resetCustomElementValue:函数(n){var t = n.find(“form_custominput(); t.val(”“)},getAllDataElements:函数(t){return n(”。form_mext,.form__customeLement,[data-f型]“,t).not(”formstep,.formsubmitbutton,.form_urement - nondata,[data-f type ='步骤',[data-f型= '形式'],[数据-f型= 'resetbutton'],[数据-f型= '提交按钮'],[数据-F-元件-非数据]“)},isStepSatisfyDependentCondition:功能(N,T){如果(!n)返回!1; var r = n.dependfield,u = i.loadformdatafromstorage(t.id),f = epi.episerver.forms.dependconditions [n.dependcondition]; return!r ||!f ||!你!0:f(u [r],n.dependvalue)},getantiforgerytoken:function(t){var i = n('输入[name ='__ requestVerificationToken“,t。$工作表).val(); return {antiforgerytoken:i}},buildsubmitrequestheader:函数(t){var i = {},r = this.gettantiforgerytoken(t); return n.extend(i,r),i}},Data:{loadCurrentFormDataFromStorage:function(n){var t=epi.EPiServer.Forms.Utils.getFormIdentifier(n);return this.loadFormDataFromStorage(t)},loadFormDataFromStorage:function(t){var r=this.getStorage(),i=r[t];return i?(i=n.parseJSON(i),!i)?{}:i:{}},saveCurrentFormDataToStorage:function(n,t){var i=epi.EPiServer.Forms.Utils.getFormIdentifier(n);return this.saveFormDataToStorage(i,t)},saveFormDataToStorage:function(n,t){var i=this.getStorage();try{i.setItem(n,JSON.stringify(t))}catch(r){console.log("Local Storage not supported: "+r.message)}return t},clearFormDataInStorage:function(n){removeFormDataInStorage(epi.EPiServer.Forms.Utils.getFormIdentifier(n))},removeFormDataInStorage:function(n){this.getStorage().removeItem(n)},getStorage:function(){return sessionStorage}},Validation:{getValidatorByValidatorType:function(n,t){if(n instanceof Array&&n.length!==0&&t)for(var r=0,i=null,u=n.length;r = 0 && n.workingFormInfo.DependencyInactiveElements.splice(T,1)}否则N $ domElement.hide(this.Config.HideDuration),n.workingFormInfo.DependencyInactiveElements.push(n.dependantInfo.fieldName)},隐藏:函数(正){如果(n.isSatisfied)N $ domElement.hide(this.Config.HideDuration),n.workingFormInfo.DependencyInactiveElements.push(n.dependantInfo.fieldName);其他{N $ domElement.show(this.Config。ShowDuration); VAR吨= n.workingFormInfo.DependencyInactiveElements && n.workingFormInfo.DependencyInactiveElements.indexOf(n.dependantInfo.fieldName); T> = 0 && n.workingFormInfo.DependencyInactiveElements.splice(T,1)}}},DependantController:F,从属:即,_initDependencyInfos:功能(N){风险I = n.DependenciesInfo,R;如果(ⅰ&&(i.length <= 0)!)对于(n.DependantControllers = [],R = 0; R = 0))返回未定义; VAR E = t.getCurrentStepIndex(R),O = N(R $步骤[E]),S = N(I,O)。长度> 0;返回小号t.getElementValue(ⅰ):( F = epi.EPiServer.Forms.Data.loadCurrentFormDataFromStorage(R $ workingForm)中,f [U])},_ getTriggerEventForDependeeElement:功能(N){返回t.isElementType(N, “文本框”)“KEYUP“:” 变化“}},导航:{findNextStep:功能(N,T){风险R =无效,U = N + 1,I = t.StepsInfo.Steps [U]; RETURN I &&(R = epi.EPiServer.Forms.Extension.isStepSatisfyDependentCondition(I,T)I:this.findNextStep(U,T))中,r},findPreviousStep:功能(N,T){风险R =无效,U = N-1,I =吨.StepsInfo.Steps [U];返回我&&(R = epi.EPiServer.Forms.Extension.isStepSatisfyDependentCondition(I,T)I:this.findPreviousStep(U,T))中,r}}}); VAR H = I.getStorage()中,c = {VisitorData:{ “EPiServer.Forms.Implementation.VisitorData.GeoVisitorDataSource”:函数(t)的{n.ajax({URL: “/ EPiServer.Forms / DataSubmit / GetGeoData”,类型:“GET”成功:功能(N){风险R = t.val(),I; R ||(I = t.data( “epiforms-visitordataproperty”)|| t.data( “F-visitordataproperty”)中,n!= NULL && N [1] && t.val(N [1]))}})}}},L = {校验:{ “EPiServer.Forms.Implementation.Validation.RequiredValidator”:功能(N,T,I){返回我&&(吨== “” ||吨&& t.length!){的isValid?:!1,消息:i.model.message}:{的isValid:0}}, “EPiServer.Forms.Implementation.Validation.RegularExpressionValidator”:t.validateRegularExpressionValidator, “EPiServer.Forms.Implementation.Validation.EmailValidator”:吨。validateRegularExpressionValidator, “EPiServer.Forms.Implementation.Validation.UrlValidator”:t.validateRegularExpressionValidator, “EPiServer.Forms.Implementation.Validation.DateDDMMYYYYValidator”:t.validateRegularExpressionValidator, “EPiServer.Forms.Implementation.Validation.DateMMDDYYYYValidator”:t.validateRegularExpressionValidator,“EPiServer.Forms.Implementation.Validation.DateYYYYMMDDValidator”:t.validateRegularExpressionValidator, “EPiServer.Forms.Implementation.Validation.IntegerValidator”:t.validateRegularExpressionValidator, “EPiServer.Forms.Implementation.Validation.PositiveIntegerValidator”:t.validateRegularExpressionValidator,“EPiServer.Forms.Implementation.Validation.AllowedExtensionsValidator“:功能(N,T,I){函数h(N,T,I){风险R = C(N);返​​回r.length <1 1:(R =!r.toLowerCase(),t.indexOf(R)> = 0)?1:i.length <1?0:!i.indexOf(R)> - 1}函数c(n)的{返回n.substr(( “” 〜-n.lastIndexOf()>>> 0)2)}如果(T ||吨的instanceof阵列&& t.length == 0){返回的isValid:!0}; VAR O = T,R =i.model.accept,L = epi.EPiServer.Forms.UploadExtensionBlackList.split( “ ”)中,u = R ==未定义|| r.length <1 []:r.split(“,”)中,f= 0,E = 0,S = u.length,A = o.length;若(S> 0),(;˚F F)返回{的isValid:1,消息:!epi.EPiServer.Forms.Utils.stringFormat(i.model.message,[F / 1048576])}; {返回!isValid方法:0}},“EPiServer.Forms.Implementation.Validation.NumericValidator“:!?函数(T,I,R){返回我|| n.isNumeric(ⅰ)== 0 {的isValid:0}:{的isValid:1,消息:r.model。消息}}, “EPiServer.Forms.Implementation.Validation.CaptchaValidator”:{初始化:函数(T){风险I =此; t.parents( “FormCaptcha,[数据-f型= '验证码']。”).find( “FormCaptcha__Refresh,[数据-F-验证码刷新]。 ”)上(“ 点击”,函数(t)的{i._refreshCaptcha(N(本)); t.preventDefault()})},验证:功能(N,T){!变种I = t.trim();返回I =空&& I = “”},onServerValidateFailed:功能(N){this._refreshCaptcha(N); n.focus()},_ refreshCaptcha:功能(N){风险I = n.hasClass( “FormCaptcha”)|| t.isElementType(N, “验证码”)N:?n.parents(” FormCaptcha,[数据-f型= '验证码'] “)中,r = i.find(” FormCaptcha__Image,[数据-F-验证码图像] “)中,u = i.find(” FormTextbox__Input,[数据-F-DataInput中]“);。。r.attr(“SRC”,r.attr( “SRC”)+ “&d =” +的Math.random()); u.val( “”)}}}},A = {DEPEndConditions:{等于:功能(N,T){返回N = N epi.EPiServer.Forms.Utils.getConcatString(N, “”)toUpperCase():?? “”,T = T t.toUpperCase(): “”,正=== T},NotEquals:功能(N,T){返回N = N epi.EPiServer.Forms.Utils.getConcatString(N, “”)。toUpperCase(): “”,叔?= T t.toUpperCase() “!”,和n = t},包含:函数(N,T){回报N = N epi.EPiServer.Forms.Utils.getConcatString(N,? “”)toUpperCase。(): “”,T = t.toUpperCase():? “”,n.indexOf(T)> = 0},NotContains:功能(N,T){返回N = N epi.EPiServer.Forms。Utils.getConcatString(N, “”): “”,!N &&吨|| N &&吨|| N &&吨&& n.toUpperCase()的indexOf(t.toUpperCase())<0},MatchRegularExpression:!功能(N,T){变种I =新正则表达式(T, “IgM的”);返回i.ignoreCase = i.global = i.multiline = 0,T ||吨&& i.test(N)}}};!!n.extend(0,epi.EPiServer.Forms,C); n.extend(0,epi.EPiServer.Forms,升);!n.extend(0,epi.EPiServer.Forms,一个); n.extend(0,外延!。EPiServer.Forms,{CustomBindingElements:{}}); epi.EPiServer.Forms.init =函数(){epi.EPiServer.Forms .__初始化||(epi.EPiServer.Forms .__初始化= 0,N(文件!)。就绪(函数(){本功能离子Y(I){风险O,R,S,H;如果(i.preventDefault(),i.stopPropagation(),O = t.getWorkingFormFromInnerElement(i.target)中,r = E(○),r.SubmittableStatus!.submittable === 1)返回F(R,r.SubmittableStatus.message),! 1;如果(S = L(R),!NT(S,R))返回C(S),TT(S),1; 1 H =等(O); n.when(UT(R,H)),然后(函数(E){风险C,L,S,v,A,Y;!如果(E)的回报!1; C = []; L = NULL;用于(以h S)s.indexOf( “__ TempData的”)== - 1 &&(r.DependencyInactiveElements.indexOf(S)> = 0 ||(L = t.getFormElementBlock(S,O),l.parents( “FormStep:第一,[数据-f型= '步骤']:第一个 ”)hasClass(“ 隐藏”)||(v = u.getElementValidators(r.ValidationInfo,多个),C = c.concat(u.validateFormValue(S,H [S],v)))));!如果(α= n.grep(C,函数(N){返回n.isValid == 1}),a.length>0)return y=n.map(a,function(n){return r.ElementsInfo[n.fieldName].friendlyName+": "+n.message}),f(r,y.join(" ")),!1;b(i)})}function p(n){n.preventDefault();n.stopPropagation();var r=t.getWorkingFormFromInnerElement(n.target),i=e(r);t.raiseFormsEvent(i,{type:"formsReset",sourceEvent:n});w(r,i);s(i.StepsInfo.Steps[0],i)}function w(u,e){if(u.get(0).reset(),e.SubmittableStatus&&e.SubmittableStatus.submittable===!1?f(e,e.SubmittableStatus.message):f(e,""),i.removeFormDataInStorage(e.Id),r.getAllDataElements(u).each(function(i,u){var f=n(u);a(f).text("");f.hasClass("FormChoice")||t.isElementType(f,"choice")?f.find("input[type=checkbox], input[type=radio]").each(function(t,i){var r=n(i);r.prop("checked",r.data("epiforms-default-value")||r.data("f-default-value")?!0:!1)}):f.hasClass("FormSelection")||t.isElementType(f,"selection")?(f.find("option[disabled]:eq(0)").prop("selected",!0),f.find("option").each(function(t,i){var r=n(i);r.prop("disabled")===!1&&r.prop("selected",r.data("epiforms-default-value")||r.data("f-default-value")?!0:!1)})):f.hasClass("FormFileUpload")||t.isElementType(f,"fileupload")?(k(f).text(""),it(f.find(".FormFileUpload__Input, [data-f-datainput]"))):(f.hasClass("Form__CustomElement")||t.isElementType(f,"custom"))&&r.resetCustomElementValue(f)}),e.DependantControllers&&e.DependantControllers.length)for(var o=0;o = 0))如果(y = tt [b],array.isarray(y)&& y.length> 0 && y [0]!== null && typeof y [0] ==“对象”&y [0] .file && object.getprototypof(y [0] .file)=== file.prototype){for(et = y,ot =“”,nt = 0; nt 0 &&室温(H,r.Data.ValidationInfo)},错误:功能(N,I,R){u.preventDefault(); t.raiseFormsEvent(H,{类型: “formsSubmittedError”,FORMDATA:C,isSuccess:1!,xhr:n,typeoffailure:i,状态:r}); f(h,i + n + n.status +“:”+ r)},完成:function(){a.prop(“禁用”,!1); v(h)}})}函数RT(t,i){for(var s,e,f = null,r = 0; r 1)});返回}如果(o = e.find(”。FormChoice__Input——广播、[data-f-datainput]:电台”),o.length ! = 0) {c = n.isArray (f) ? f [0]: f; n.each (o,函数(){vart = n(这).val (); n(这).attr(“检查”,c = = t)});返回}如果(e.hasClass (FormSelection) | | t.isElementType (e,“选择”)){n(“选择:启用”,e) . each(函数(t, i) {n (i) .attr(“选择”,f.indexOf (n (i) .val()) > 1)});返回}如果(e.hasClass (FormCaptcha) | | t.isElementType (e,“验证码”))返回;如果(o = e.find(”。f instanceof Array&&f.length>0&&(l=f.map(function(n){return n.name})).join(", f instanceof ", f instanceof Array&&f.length>0&&(l=f.map(function(n){return n.name}));”),s = s.concat (l)); s ! = = " " & & (a = t.stringFormat (epi.EPiServer.Forms.Messages.fileUpload.postedFile [s]), v = k (e), v.text (a),告诉());返回}如果(e.hasClass (Form__CustomElement) | | t.isElementType (e,“自定义”)){r.bindCustomElementValue (e, f);返回}e.find(“[data-f-datainput]:第一”).val (f)}})}函数k (n){返回n.find(”。FormFileUpload__PostedFile,[data-f-postedFile]”)}函数d (t, r) {var u = e (t), f = l (u), o = g (f, r), s = i.loadFormDataFromStorage (u.Id);返回n.extend(年代,o)}函数等(t) {var r = e (t), u = g (t), f = i.loadFormDataFromStorage (r.Id);返回n.extend (f, u)}函数e (n) {var r = t.getFormIdentifier (n), i = epi.EPiServer.Forms [r];返回我。$ workingForm = n,我}函数g(我,u) {var f ={};回报r.getAllDataElements(我). each(函数(ir) {var e = n (r), o,年代,h, a、c、l;如果((typeof u ! =“功能”| | ! u (e)) & & ! e.parents(”。FormStep:首先,[data-f-type = '一步']:第一”).hasClass(“隐藏”)& & (o = t.getElementName (e), o)){如果(e.hasClass (FormFileUpload) | | t.isElementType (e,“类”)){如果(s = n(“。FormFileUpload__Input [data-f-datainput]”,e) [0], h = o +”__TempData“f [o] = [], f [h] = [], s&&s.files.length ! = = 0) (c = 0; c 0 &&(Y = u.validateFormValue(E,L,C)中,s = n.grep(Y,函数(n)的{返回n.isValid ==!1})中,s && s.length> 0?(P = N。映射(S,函数(n)的{返回} n.message),f.addClass( “ValidationFail”),h.text(p.join(”“))。显示(),O =!1):(˚F.addClass( “ValidationSuccess”),O = 0)),t.raiseFormsEvent(R,{类型: “elementValidated” isValid方法:O,的ElementName:E,elementValue:升,elementIdentifier:v,元件:I,$ messageContainer:H}),邻}函数A(I){风险R = t.getElementName(I)中,u = t.stringFormat(“{0} [数据epiforms联名= '{1}'],{0} [数据epiforms联名= '{2}'] “[”。Form__Element__ValidationError “R,i.attr( ”ID“)]),F = t.stringFormat(”{0} [数据-f联名= '{1}'],{0} [数据-F-链接名称= '{2}']”,[ “[数据-F-validationerror]” 中,r,i.attr( “ID”)]);返回N(U)。新增(F)}函数ST(R){如果(R && r.StepsInfo && r.StepsInfo.Steps &&($步骤R =正(” FormStep,[数据-F!型= '步骤']”,R $ workingForm),(r.StepsInfo.Steps.length <2))){风险U = r.StepsInfo.Steps [t.getCurrentStepIndex(R)]; S(U中,r); N( “Form__NavigationBar__Action.btnNext,[数据-F-导航-下]”,R $ workingForm)。在(“CLICK”,功能(N){n.preventDefault(); VAR T = L(R),I = NT(T,R);如果返回C(T),TT(t)的1 ,!(I!);b(N)}); N(。 “Form__NavigationBar__Action.btnPrev,[数据-F-导航以前]”,R $ workingForm)。在( “点击”,函数(U){风险E,F,H;u.preventDefault(); E = d(R $ workingForm,功能(N){返回n.hasClass( “FormFileUpload”)|| t.isElementType(N, “文件上传”)}); i.saveFormDataToStorage(R。ID,E); F = o.findPreviousStep(t.getCurrentStepIndex(R)中,r); S(F,R); H = N( “部分[数据epiforms-stepindex =” + f.index +“],节[数据-F-stepindex = “+ f.index +”]”,R $ workingForm); C(H); t.raiseFormsEvent(R,{类型: “formsNavigationPrevStep”,targetStep:F})})}}功能S(R,U){如果(R){t.raiseFormsEvent(U,{类型: “formsNavigateToStep”,targetStep:R}); VAR E = i.loadFormDataFromStorage(u.Id);如果(英尺(例如,U.$workingForm),u.StepsInfo.AllStepsAreNotLinked||r.attachedContentLink==epi.EPiServer.CurrentPageLink)u.$steps.addClass("hide"),u.$steps.each(function(i,f){if(i===r.index)return n(f).removeClass("hide"),t.setCurrentStepIndex(u,r.index),!1}),t.scrollToTheTopOfForm(u.$workingForm);else{if(r.attachedUrl&&r.attachedUrl.length){window.location.replace(r.attachedUrl);return}u.StepsInfo.AllStepsAreNotLinked||f(u,epi.EPiServer.Forms.Messages.viewMode.malformStepConfiguration)}}else u.$steps.hide();v(u)}function c(t){epi.EPiServer.Forms.Validators["EPiServer.Forms.Implementation.Validation.CaptchaValidator"]._refreshCaptcha(n(".Form__Element.FormCaptcha, [data-f-type='captcha']",t))}function tt(t){if(t){var i=n(".Form__Element.ValidationFail",t)[0];i&&(i.scrollIntoView(),n("[data-f-datainput]",i).focus())}}function v(i){var u=t.getCurrentStepIndex(i),r=n(".Form__NavigationBar, [data-f-type='navigationbar']",i.$workingForm),o,s,f,e;if(u<0){r.hide();return}o=n(".Form__NavigationBar__Action.btnPrev, [data-f-navigation-previous]",r).prop("disabled",!1);s=n(".Form__NavigationBar__Action.btnNext, [data-f-navigation-next]",r).prop("disabled",!1);(u==0||i.SubmittableStatus.submittable===!1)&&o.prop("disabled",!0);(u==i.StepsInfo.Steps.length-1||i.SubmittableStatus.submittable===!1)&&s.prop("disabled",!0);n(".Form__NavigationBar, [data-f-type='navigationbar']",i.$workingForm).toggle(i.ShowNavigationBar);f=u+1;e=i.StepsInfo.Steps.length;n(".Form__NavigationBar__ProgressBar__CurrentStep, [data-f-navigation-currentStep]",r).text(f);n(".Form__NavigationBar__ProgressBar__StepsCount, [data-f-navigation-stepcount]",r).text(e);n(".Form__NavigationBar__ProgressBar--Progress, [data-f-navigation-progress]",r).css({width:100*f/e+"%"})}function l(i){var r=t.getCurrentStepIndex(i);return n(i.$steps[r])}function it(n){/MSIE/.test(navigator.userAgent)&&n.replaceWith(n=n.clone(!0))}if(!h){n('.EPiServerForms .Form__Status__Message, [data-f-type="form"] [data-f-form-statusmessage]').text(epi.EPiServer.Forms.ErrorMessages.cantnotworkwithoutstorage);return}n('.EPiServerForms, [data-f-type="form"]').each(function(i,r){var o=n(r),u=e(o);u.SubmittableStatus&&u.SubmittableStatus.submittable===!1&&f(u,u.SubmittableStatus.message);st(u);epi.EPiServer.Forms.Dependency._initDependencyInfos(u);n(u.ValidationInfo).each(function(t,i){n(i.validators).each(function(t,r){var u=epi.EPiServer.Forms.Validators[r.type];u&&typeof u.initialize=="function"&&u.initialize(n("#"+i.targetElementId))})});t.injectVisitorData(u);n(".Form__Element.FormSubmitButton, [data-f-type='submitbutton']",o).off("click",y).on("click",y);n(".Form__Element.FormResetButton, [data-f-type='resetbutton']",o).off("click",p).on("click",p);t.raiseFormsEvent(u,{type:"formsSetupCompleted"})});n(".EPiServerForms .FormTextbox--Number .FormTextbox__Input, [data-f-type='form'][data-f-type='textbox'][data-f-modifier='number'] [data-f-datainput]").on("keydown",function(n){var t=n.which||n.keyCode,i;return!n.shiftKey&&!n.altKey&&!n.ctrlKey&&t>=65&&t<=90||t==32?!1:!n.shiftKey&&!n.altKey&&!n.ctrlKey&&t>=48&&t<=57||t>=96&&t<=105||n.keyCode==65&&n.ctrlKey===!0||t==67&&n.ctrlKey===!0||t==88&&n.ctrlKey===!0||t>=35&&t<=39||t==8||t==9||t==13||t==46||t==45?!0:(i=this.value,(t==109||t==189)&&i[0]==="-")?!1:(!n.shiftKey&&!n.altKey&&!n.ctrlKey&&t==190||t==188||t==110)&&/[\.,]/.test(i)?!1:void 0}).on("keyup",function(){var n=this.value;isNaN(n)&&n&&(n=(n[0]==="-"?"-":"")+n.replace(/[^0-9\.]/g,""),n=n.replace(/\.(?=(.*)\.)+/g,""),this.value=n)});n('.EPiServerForms input.FormTextbox__Input,.FormChoice__Input.FormChoice__Input--Checkbox,.FormRange__Input,.FormTextbox__Input.FormUrl__Input,.FormChoice__Input.FormChoice__Input--Radio,.FormTextbox__Input.FormCaptcha__Input.FormHideInSummarized,[data-f-type="form"] [data-f-datainput]:not(textarea)').on("keydown",function(n){return t.showNextStepOnEnterKeyDown(n)})}))};epi.EPiServer.Forms.ExternalScriptSources.length<=0&&epi.EPiServer.Forms.ExternalCssSources.length<=0?epi.EPiServer.Forms.init():(t.loadExternalScriptOnDemand(epi.EPiServer.Forms.ExternalScriptSources,function(){t.raiseFormsEvent(null,{type:"formsLoadExternalScripts",scripts:epi.EPiServer.Forms.ExternalScriptSources});epi.EPiServer.Forms.init()}),t.loadExternalCssOnDemand(epi.EPiServer.Forms.ExternalCssSources,function(){t.raiseFormsEvent(null,{type:"formsLoadExternalCss",Css:epi.EPiServer.Forms.ExternalCssSources})}))})($$epiforms||$);