自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

常用Flex驗(yàn)證控件用法指導(dǎo)

開發(fā) 后端
本文向大家簡單介紹一下常用Flex驗(yàn)證控件的使用,主要包括Flex驗(yàn)證控件的必填項(xiàng),檢測時機(jī)的控制等內(nèi)容,希望本文的介紹能讓你有所收獲。

 本文和大家重點(diǎn)討論一下常用Flex驗(yàn)證控件的用法,主要包括主要包括Flex驗(yàn)證控件的必填項(xiàng),檢測時機(jī)的控制,驗(yàn)證失敗時如何處理和批量驗(yàn)證等內(nèi)容,相信通過本文的學(xué)習(xí)你對Flex驗(yàn)證控件的用法一定會有深刻的認(rèn)識。

常用Flex驗(yàn)證控件

1.驗(yàn)證必填項(xiàng)

代碼如下: 

  1. <mx:Validatoridmx:Validatorid="nameV"source="{nameTI}"property="text"requiredFieldError="必須輸入用戶名!"/> 
  2. <mx:FormItemlabelmx:FormItemlabel="用戶名:"> 
  3. <mx:TextInputidmx:TextInputid="nameTI"/> 
  4. </mx:FormItem> 
  5. <mx:Buttonidmx:Buttonid="btn"label="提交"/> 

 Validator組件的功能是檢測必填項(xiàng)。我們把要檢測的組件的名字寫在source屬性中,把要檢測的組件的屬性寫在property屬性中,然后自定義requiredFieldError屬性的值即可。當(dāng)然requiredFieldError屬性的值也可以不定義,那么就會使用默認(rèn)的提示文字。

上面的錯誤提示的文字有些看不清,只需要加上這樣一句就OK了:
 

  1. <mx:Style> 
  2. .errorTip  
  3. {  
  4. fontSize:12;  
  5. }  
  6. </mx:Style> 

 2.控制Flex驗(yàn)證控件檢測時機(jī)

默認(rèn)的情況下,F(xiàn)lex當(dāng)我們切換組件焦點(diǎn)的時候檢測
任意動作觸發(fā)驗(yàn)證有兩種寫法。一種是在驗(yàn)證組件中指明觸發(fā)器和觸發(fā)動作。另一種是執(zhí)行事件處理函數(shù)。
在驗(yàn)證組件中指明觸發(fā)器和觸發(fā)動作的語法如下所示。
 

  1. <mx:驗(yàn)證組件類型  
  2. source="{輸入源id}" 
  3. property="輸入源的屬性" 
  4. trigger="{觸發(fā)器}" 
  5. triggerEvent="觸發(fā)事件"> 

 下面這個例子為按Tab鍵切換焦點(diǎn)已經(jīng)不能觸發(fā)檢測動作了,只有單擊“提交”按鈕才會觸發(fā)檢測。
 

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="vertical"fontSize="12"width="300"height="150"> 
  3. <mx:Validatoridmx:Validatorid="nameV"source="{nameTI}"property="text" 
  4. requiredFieldError="必須輸入姓名!" 
  5. trigger="{btn}"triggerEvent="click"/> 
  6. <mx:Validatoridmx:Validatorid="ageV"source="{ageTI}"property="text" 
  7. requiredFieldError="必須輸入年齡!" 
  8. trigger="{btn}"triggerEvent="click"/> 
  9. <mx:FormItemlabelmx:FormItemlabel="姓名:"> 
  10. <mx:TextInputidmx:TextInputid="nameTI"/> 
  11. </mx:FormItem> 
  12. <mx:FormItemlabelmx:FormItemlabel="年齡:"> 
  13. <mx:TextInputidmx:TextInputid="ageTI"/> 
  14. </mx:FormItem> 
  15. <mx:Buttonidmx:Buttonid="btn"label="提交"/> 
  16. </mx:Application> 

 在默認(rèn)情況下,Validator會在Flex發(fā)出valueCommit事件的時候進(jìn)行檢測,因此當(dāng)焦點(diǎn)改變的時候,會自動進(jìn)行檢測。而上面的源碼中,則手動指定了進(jìn)行檢測的事件是btn按鈕的click事件。

任意動作的觸發(fā)也可采用代碼觸發(fā)驗(yàn)證方式。
其語法如下所示。
<組件事件="驗(yàn)證組件.validate();"/>
驗(yàn)證組件都包含一個validate方法,用以代碼執(zhí)行驗(yàn)證。
比如:
<mx:Buttonid="btn"label="提交"click="nameV.validate();"/>#p#

3.Flex驗(yàn)證控件驗(yàn)證失敗處理

驗(yàn)證失敗時需要做錯誤的提示及處理。驗(yàn)證組件中提供了豐富的錯誤類型,只是這些錯誤類型的提示是英文的,用戶可能需要改變提示。修改錯誤提示的方法是修改組件中相應(yīng)的錯誤類型屬性。例PhoneNumberValidator組件中的wrongLengthError屬性表示長度錯誤提示。
用戶可根據(jù)需要修改相應(yīng)的出錯信息。其語法如下所示。
<驗(yàn)證組件錯誤類型屬性="自定義錯誤提示"/>

例: 

  1. //引用ValidationResultEvent類  
  2. importmx.events.ValidationResultEvent;  
  3. privatefunctioncheckHandle():void//驗(yàn)證處理函數(shù)  
  4. {  
  5. if(emailV.validate().type==ValidationResultEvent.VALID)  
  6. {  
  7. Alert.show("電子郵件驗(yàn)證成功");//提示"驗(yàn)證成功"  
  8. }  
  9. }  
  10.  
  11. <!--按鈕組件,用于驗(yàn)證處理--> 
  12. <mx:Buttonidmx:Buttonid="mySubmit"label="驗(yàn)證"click="checkHandle();"/> 
  13.  

 注:
If(驗(yàn)證組件id.validate().type==ValidationResultEvent.VALID)
ValidationResultEvent類包含于“mx.events.*”中,是驗(yàn)證結(jié)果事件類。其中,INVALID值表示驗(yàn)證失敗,VALID值表示驗(yàn)證成功。

Validator還有一個listen屬性,它用來指定檢測的錯誤信息顯示在哪個組件上。例:
 

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="vertical"fontSize="12"width="300"height="200"> 
  3. <mx:Validatoridmx:Validatorid="nameV"source="{nameTI}"property="text" 
  4. requiredFieldError="必須輸入姓名!" 
  5. trigger="{btn}"triggerEvent="click"/> 
  6. <mx:Validatoridmx:Validatorid="ageV"source="{ageTI}"property="text" 
  7. requiredFieldError="必須輸入年齡!" 
  8. trigger="{btn}"triggerEvent="click"/> 
  9. <mx:Validatoridmx:Validatorid="sexV"source="{sexRBG}"property="selectedValue" 
  10. requiredFieldError="必須選擇性別!" 
  11. trigger="{btn}"triggerEvent="click"  
  12. listener="{maleRB}"/> 
  13. <mx:FormItemlabelmx:FormItemlabel="姓名:"width="150"> 
  14. <mx:TextInputidmx:TextInputid="nameTI"/> 
  15. </mx:FormItem> 
  16. <mx:FormItemlabelmx:FormItemlabel="年齡:"width="150"> 
  17. <mx:TextInputidmx:TextInputid="ageTI"/> 
  18. </mx:FormItem> 
  19. <mx:FormItemlabelmx:FormItemlabel="性別:"direction="horizontal"width="150"> 
  20. <mx:RadioButtonGroupidmx:RadioButtonGroupid="sexRBG"/> 
  21. <mx:RadioButtonidmx:RadioButtonid="maleRB"groupName="sexRBG"label="男"value="1"/> 
  22. <mx:RadioButtonidmx:RadioButtonid="femaleRB"groupName="sexRBG"label="女"value="0"/> 
  23. </mx:FormItem> 
  24. <mx:Buttonidmx:Buttonid="btn"label="提交"/> 
  25. </mx:Application> 

對于性別的選擇,由于檢測兩個RadioButton比較麻煩,采用了檢測RadioButtonGroup的selectedValue屬性的方法,如果這個屬性為空,就說明兩個RadioButton都沒有選擇。但RadioButtonGroup并不是一個可視組件,檢測的錯誤信息無法顯示出來,所以這里就使用了listen屬性將顯示信息轉(zhuǎn)到maleRB組件上進(jìn)行顯示了。#p#

4.批量Flex驗(yàn)證控件驗(yàn)證

創(chuàng)建一個表單 

  1. <mx:Form> 
  2. <mx:FormItemlabelmx:FormItemlabel="當(dāng)前部門:"> 
  3. <mx:Textidmx:Textid="txtDepartName"width="100"/> 
  4. </mx:FormItem> 
  5.  
  6. <mx:FormItemlabelmx:FormItemlabel="*新建角色名稱(至多10個漢字):"> 
  7. <mx:TextInputidmx:TextInputid="roleName"width="100%"/> 
  8. </mx:FormItem> 
  9.  
  10. <mx:FormItemlabelmx:FormItemlabel="*新建角色名稱(至多10個英文字母):"> 
  11. <mx:TextInputidmx:TextInputid="roleEnName"width="100%"/> 
  12. </mx:FormItem> 
  13.  
  14. <mx:FormItemlabelmx:FormItemlabel="角色描述(至多50個漢字):"> 
  15. <mx:TextInputidmx:TextInputid="roleDescibe"width="100%"/> 
  16. </mx:FormItem> 
  17.  
  18. <mx:ControlBar> 
  19. <mx:Buttonidmx:Buttonid="btnSubmit"label="提交"click="btnSubmit_click()"/> 
  20. <mx:Buttonidmx:Buttonid="btnClose"label="關(guān)閉"click="btnClose_click()"/> 
  21. </mx:ControlBar> 
  22.  

 創(chuàng)建Flex驗(yàn)證控件,放在數(shù)組里
 

  1. <fx:Arrayidfx:Arrayid="roleNameValidators"> 
  2. <mx:Validatoridmx:Validatorid="roleNameValidator" 
  3. source="{roleName}"property="text"  
  4. required="true"requiredFieldError="請輸入角色名"/> 
  5. </fx:Array> 

通過數(shù)組,創(chuàng)建組合驗(yàn)證
 

  1. <fx:Arrayidfx:Arrayid="roleEnNameValidators"> 
  2. <mx:StringValidatorsourcemx:StringValidatorsource="{roleEnName}"property="text"  
  3. tooShortError="字符串太短了,請輸入最少1個字符." 
  4. tooLongError="字符串太長了,請輸入最長10個字符." 
  5. minLength="1"maxLength="10"/> 
  6. <mx:RegExpValidatoridmx:RegExpValidatorid="roleEnNameValidator" 
  7. source="{roleEnName}"property="text"  
  8. flags="g,i"expression="^[a-z]+$"  
  9. noMatchError="請輸入正確的英文字母" 
  10. required="false"/> 
  11. </fx:Array> 
  12. </fx:Declarations> 

 //代碼
 

  1. privatefunctionbtnSubmit_click():void{  
  2. //分別檢測驗(yàn)證是否通過,如果沒有通過,則通過派發(fā)事件,主動顯示錯誤提示  
  3. if(Validator.validateAll(roleEnNameValidators).length!=0)  
  4. roleEnName.dispatchEvent(newMouseEvent(MouseEvent.MOUSE_OVER));  
  5. elseif(Validator.validateAll(roleNameValidators).length!=0)  
  6. roleName.dispatchEvent(newMouseEvent(MouseEvent.MOUSE_OVER));  
  7. else  
  8. {  
  9. varpar:powerModule=this.owneraspowerModule;  
  10. par.roleList.addItem({label:"大三輔導(dǎo)員",data:"3"});  
  11.  
  12. varmodel:RoleModel=newRoleModel();  
  13. model.roleName="大三輔導(dǎo)員";  
  14. model.roleEnName="daisan";  
  15. model.roleID=par.personVo.departID+"."+model.roleEnName;  
  16.  
  17. model.ysxh="010200";  
  18. model.roleDescribe="測試用的";  
  19. AddRoleResult.token=roleService.add(model);  
  20. }  
  21.  
  22. }  
  23.  

【編輯推薦】

  1. Flex控件工具大全
  2. 詳解Flex控件拖動技術(shù)
  3. 技術(shù)前沿 看Flex客戶端緩存技術(shù)如何使用
  4. 解析Flex全屏模式設(shè)置方法
  5. Flex內(nèi)存泄露解決方法和內(nèi)存釋放優(yōu)化原則

 

 


 

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-08-05 09:05:14

Flex Button

2010-07-27 15:28:02

Flex DataBi

2010-07-29 09:44:17

Flex編程

2010-08-05 10:08:06

Flex效果

2010-07-28 10:38:29

Flex開源框架

2010-08-12 09:25:35

Flex控件

2010-07-28 10:48:48

FlexReport開

2010-08-05 13:44:12

Flex布局

2010-07-27 13:53:15

Flex ComboB

2010-08-06 10:32:49

Flex數(shù)據(jù)類型

2010-08-13 13:46:04

Flex效果組件

2010-08-12 13:25:46

Flex驗(yàn)證方式

2010-07-30 10:13:38

Flex控件

2010-08-13 11:21:31

Flex渲染器

2010-08-17 10:00:17

DIV樣式

2010-08-11 09:11:19

FlexBuilder

2010-08-12 13:59:37

FlexList控件

2010-07-27 10:19:28

Flex

2010-08-10 14:25:42

SilkTestFlex

2010-08-06 15:11:44

Flex界面控件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號