溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Javascript中怎么實(shí)現(xiàn)一個(gè).NET驗(yàn)證控件功能

發(fā)布時(shí)間:2021-07-01 15:46:02 來源:億速云 閱讀:133 作者:Leah 欄目:web開發(fā)

Javascript中怎么實(shí)現(xiàn)一個(gè).NET驗(yàn)證控件功能,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

首先我們看看.NET驗(yàn)證控件,在頁面上做了什么事情。

<asp:TextBoxIDasp:TextBoxID="txtValidator"runat="server"></asp:TextBox> <asp:RequiredFieldValidatorIDasp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"  ControlToValidate="txtValidator"ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>

在頁面上解析成:

<inputnameinputname="txtValidator"type="text"id="Text1"/> <spanidspanid="Span1"style="color:Red;visibility:hidden;">RequiredFieldValidator</span>

驗(yàn)證控件在頁面變?yōu)榱艘粋€(gè)隱藏的span,需要驗(yàn)證的時(shí)候,進(jìn)行顯示。

同時(shí)頁面上出現(xiàn)了一些用于驗(yàn)證的腳步

<scripttypescripttype="text/javascript"> //<![CDATA[  //驗(yàn)證控件的集合,當(dāng)添加一個(gè)驗(yàn)證控件的時(shí)候,就會多一個(gè)item  varPage_Validators=newArray(document.getElementById("RequiredFieldValidator1"));  //]]> </script> <scripttypescripttype="text/javascript"> //<![CDATA[  varRequiredFieldValidator1=document.all?document.all["RequiredFieldValidator1"]:document.getElementById("RequiredFieldValidator1");//找到驗(yàn)證控件  RequiredFieldValidator1.controltovalidate="txtValidator";//綁定需要驗(yàn)證的控件  RequiredFieldValidator1.errormessage="RequiredFieldValidator";//顯示未驗(yàn)證通過的錯(cuò)誤信息  RequiredFieldValidator1.evaluationfunction="RequiredFieldValidatorEvaluateIsValid";//用于驗(yàn)證的方法  RequiredFieldValidator1.initialvalue="";  //]]> </script> <scripttypescripttype="text/javascript"> //<![CDATA[  varPage_ValidationActive=false;  if(typeof(ValidatorOnLoad)=="function"){  ValidatorOnLoad();  }  functionValidatorOnSubmit(){  if(Page_ValidationActive){  returnValidatorCommonOnSubmit();  }  else{  returntrue;  }  }  //]]> </script>

我們通過構(gòu)造類似的腳本進(jìn)行控件驗(yàn)證

添加驗(yàn)證span

<asp:CheckBoxIDasp:CheckBoxID="cbSelect"runat="server"Text="選擇"onclick="ajusSelectValidator(this,'spantxtUserName')"/> <asp:TextBoxIDasp:TextBoxID="txtUserName"runat="server"></asp:TextBox> <spanidspanid="spantxtUserName"style="color:Red;display:none;">*

該項(xiàng)不能為空</span>//添加span,用于顯示驗(yàn)證信息

添加腳本

<scriptlanguagescriptlanguage="javascript"type="text/javascript"> varIsSelectID='<%=cbSelect.ClientID%>';  vartxtUserName='<%=txtUserName.ClientID%>';  functionajusSelectValidator(checkbox,validatorID){  ajustValidator(checkbox,validatorID,txtUserName);  }  </script> //Validator.Js  functionajustValidator(checkbox,validatorID,controltoHideID){  if(checkbox.checked){  register(validatorID,controltoHideID);  document.getElementById(controltoHideID).style.visibility="visible";  }  else{  removeValidator(validatorID);  document.getElementById(controltoHideID).style.visibility="hidden";  }  }  //添加驗(yàn)證關(guān)聯(lián)  functionregister(validatorID,controltoValidateId){  Page_Validators.push(document.getElementById(validatorID));  varspan=document.getElementById(validatorID);  spanTest.controltovalidate=controltoValidateId;   span.errormessage="*該項(xiàng)不能為空";  span.display="Dynamic";  span.evaluationfunction="RequiredFieldValidatorEvaluateIsValid";  span.initialvalue="";  //spanTest.style.visibility="visible";  ValidatorOnLoad();  }  //取消驗(yàn)證關(guān)聯(lián)  functionremoveValidator(validatorID){  varvalidator=document.getElementById(validatorID);  if(validator){  for(vari=0;i<Page_Validators.length;i++){  if(Page_Validators[i]==validator){  Page_Validators.splice(i,1);  i--;  }  }  validator.style.display="none";  ValidatorOnLoad();  }  }

PS:如果頁面上沒有驗(yàn)證控件的話,直接執(zhí)行上面的代碼會出錯(cuò)的,因?yàn)镻age_Validators為null,直接往里面push為拋異常。所以用的時(shí)候,要加一個(gè)驗(yàn)證的控件。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI