(function($) { var email = new Spry.Widget.ValidationTextField("email", "email", {maxChars:100, validateOn:["change"]}); var emailReinput = new Spry.Widget.ValidationTextField("emailReinput", "none", {validateOn:["change"],isRequired:false}); var checktext1 = new Spry.Widget.ValidationTextField("checktext1", "none",{validateOn:["change"] }); var checktext2 = new Spry.Widget.ValidationTextField("checktext2", "integer", {validateOn:["change"] , minChars:10 , isRequired:false }); var spryAge = new Spry.Widget.ValidationTextField("spryAge", "integer",{validateOn:["change"] , isRequired:false }); var spryRepeat = new Spry.Widget.ValidationTextField("spryRepeat", "integer",{validateOn:["change"] , minChars:4 , isRequired:false }); var reserve1 = new Spry.Widget.ValidationTextField("reserve1", "none",{validateOn:["blur", "change"] , isRequired:true , minChars:0 , maxChars:14}); var reserve_time = new Spry.Widget.ValidationTextField("reserve1time", "none",{validateOn:["blur", "change"] , isRequired:false }); var menucheck = new Spry.Widget.ValidationCheckbox("menucheck", {validateOn:["change"] , isRequired:true }); var sprytextarea1 = new Spry.Widget.ValidationTextarea("sprytextarea1", {counterType:"chars_count", counterId:"countsprytextarea1", validateOn:["change"], maxChars:2000, minChars:0, useCharacterMasking:false, isRequired:false }); // メールアドレスカスタムチェック var mailCheck = new Object(); mailCheck.onChange = function(me){ var retFlg = true; if (this.checkReinput()){ emailReinput.removeClassName($('emailReinput'),'textfieldReinputState' ); retFlg = true; }else{ emailReinput.addClassName($('emailReinput'),'textfieldReinputState' ); retFlg = false; } return retFlg; }; //メール再入力チェック mailCheck.checkReinput = function(){ var mail = $('txtMail'); var reMail = $('txtMailReinput'); var orgMail = $('txtMailOrg'); if (orgMail.value != mail.value){ //変更チェック対象 if (mail.value == reMail.value){ return true; }else{ return false; } }else{ //メールアドレス変更をやっぱやめた場合でも、再入力が入力されていたらチェック対象とする。 if (reMail.value != ""){ if (mail.value != reMail.value){ return false; }else{ return true; } } return true; } } // submit時のチェック var submitCheck = new Object(); submitCheck.onSubmit = function(me){ if (mailCheck.onChange()) return true; else return false; } submitCheck.onInvalid = function(){ alert("入力項目に不備があります。お手数ですが再度内容をご確認ください。 "); location='#formtop'; (function($) { $(document).ready(function(){ $(".mailform span").filter("#repeatparent span").filter(" span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#menu_parent span").filter(" span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#spryAge span").filter(" span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#checktext2 span").filter(" span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#datepick02 span").filter(" span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#accept_yes span").filter(" span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#note01 span").filter(" span").filter(".necessity_child").addClass("nes_green"); //name $(".mailform span").filter("#checktext1 span").filter(".textfieldValidState span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#checktext1 span").filter(".textfieldValidState span").filter(".necessity_child").removeClass("nes_red"); $(".mailform span").filter("#checktext1 span").filter(".textfieldRequiredState span").filter(".necessity_child").addClass("nes_red"); $(".mailform span").filter("#checktext1 span").filter(".textfieldRequiredState span").filter(".necessity_child").removeClass("nes_green"); //email $(".mailform span").filter("#email span").filter(".textfieldValidState span , .textfieldRequiredMsg span ").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#email span").filter(".textfieldValidState span , .textfieldRequiredMsg span").filter(".necessity_child").removeClass("nes_red"); $(".mailform span").filter("#email span").filter(".textfieldRequiredState span , .textfieldInvalidFormatState span , .textfieldMaxCharsState span").filter(".necessity_child").addClass("nes_red"); $(".mailform span").filter("#email span").filter(".textfieldRequiredState span , .textfieldInvalidFormatState span , .textfieldMaxCharsState span").filter(".necessity_child").removeClass("nes_green"); //email Reinput $(".mailform span").filter("#emailReinput span").filter(".textfieldValidState span , .textfieldRequiredMsg span ").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#emailReinput span").filter(".textfieldValidState span , .textfieldRequiredMsg span").filter(".necessity_child").removeClass("nes_red"); $(".mailform span").filter("#emailReinput span").filter(".textfieldReinputState span").filter(".necessity_child").addClass("nes_red"); $(".mailform span").filter("#emailReinput span").filter(".textfieldReinputState span").filter(".necessity_child").removeClass("nes_green"); //Age setTimeout(function(){ $(".mailform span").filter("#spryAge span").filter(".textfieldValidState span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#spryAge span").filter(".textfieldValidState span").filter(".necessity_child").removeClass("nes_red"); $(".mailform span").filter("#spryAge span").filter(".textfieldInvalidFormatState span , .textfieldInvalidFormatState span").filter(".necessity_child").addClass("nes_red"); $(".mailform span").filter("#spryAge span").filter(".textfieldInvalidFormatState span , .textfieldInvalidFormatState span").filter(".necessity_child").removeClass("nes_green"); ;} ,400) //phonenumber $(".mailform span").filter("#checktext2 span").filter(".textfieldValidState span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#checktext2 span").filter(".textfieldValidState span").filter(".necessity_child").removeClass("nes_red"); $(".mailform span").filter("#checktext2 span").filter(".textfieldMinCharsState span , .textfieldInvalidFormatState span").filter(".necessity_child").addClass("nes_red"); $(".mailform span").filter("#checktext2 span").filter(".textfieldMinCharsState span , .textfieldInvalidFormatState span").filter(".necessity_child").removeClass("nes_green"); //clockpicker setTimeout(function(){ if ( $("#datepick01 span , #datepick01 input").hasClass("textfieldValidState") == true ){ setTimeout(function(){ $(".mailform span").filter("#datepick01 span").filter(" span").filter(".necessity_child").addClass("nes_green"); $(".mailform span").filter("#datepick01 span").filter(" span").filter(".necessity_child").removeClass("nes_red"); ;} ,700) } if ( $("#datepick01 span , #datepick01 input").hasClass("textfieldRequiredState") == true ){ setTimeout(function(){ $(".mailform span").filter("#datepick01 span").filter(" span").filter(".necessity_child").removeClass("nes_green"); $(".mailform span").filter("#datepick01 span").filter(" span").filter(".necessity_child").addClass("nes_red"); ;} ,700) } ;} ,800) }); })(jQuery); } //onchange時の追加ロジックをspryWidgetに登録 appendValidator(emailReinput , mailCheck); // submit時の追加チェックをSpry.Widget.Formに追加 appendValidator(Spry.Widget.Form , submitCheck); /* server side validation */ //ここをコメントアウトすると、名前文字数のエラーが表示されます。 //PHPなどのサーバサイドのエラー処理から、この部分を制御するとサーバエラーを同じ表示方法で表示することができます。 //setErrorMessage('txtName' , 'MaxChars'); /* server side update check */ /* * utility */ // DOMのノードを選択する関数。jQueryやprototype.jsを読み込む場合は、同じ目的の関数が用意されているので、この関数を削除してください。 function $(element){ return document.getElementById(element); } // spryWidgetに、追加したチェックを登録しています(appendLogicは、本サンプルにてspryWidget側に追加している機能です) function appendValidator(spryObj , appendLogic){ spryObj.appendLogic = appendLogic; } // エラーメッセージを表示する関数 function setErrorMessage(eleName , errCode){ var spryId; var errClass; if (eleName.match(/^txt/)){ spryId = eleName.replace(/^txt/, "spry"); if (errCode == "invalid format"){ errClass = "textfieldInvalidFormatState"; }else{ errClass = "textfield" + errCode + "State"; } }else if(eleName.match(/^chk/)){ spryId = eleName.replace(/^chk/, "spry"); errClass = "checkbox" + errCode + "State"; }else if(eleName.match(/^sel/)){ spryId = eleName.replace(/^sel/, "spry"); if (errCode == "not included in valid list"){ //選択肢にない。 errClass = "selectInvalidState"; }else if (errCode == "must be numeric"){ //数値ではない。 errClass = "selectInvalidState"; }else{ errClass = "select" + errCode + "State"; } } } })(jQuery);