国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > WEB開(kāi)發(fā) > 正文

15.5.如何去驗(yàn)證多個(gè)Combo Box及Radio Button組件

2024-04-27 13:52:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
15.5.1 問(wèn)題
如何去為多個(gè)radio button 及combo box 組件加入驗(yàn)證功能, 以確保最少其中一個(gè)項(xiàng)目會(huì)被選取?
15.5.2 解決辦法
可以使用NumberValidator 去檢查radio button 組件, 再使用一個(gè)自定義的Validator 去驗(yàn)證combo box 組件。
15.5.3 討論
如果要從radio button 組件群中返回一個(gè)ValidationResultEvent 事件, 我們可以使用NumberValidator 去檢查RadioButtonGroup 的selectedIndex 屬性是否為”-1”。如果為”-1”的話(huà),即代表radio button 中沒(méi)有任何一項(xiàng)被選取了。而對(duì)于combo box 組件, 則可以創(chuàng)建一個(gè)自定義的validator, 用來(lái)檢查ComboBox 的selectedItem 屬性是否也空, 而被選取的項(xiàng)目又是否有效。
以下有關(guān)ComboBox 中自定義的validator 的代碼會(huì)比較容易理解, 并且已加入注釋:
代碼如下:
+展開(kāi)
-ActionScript
package oreilly.cookbook
{
import mx.validators.ValidationResult;
import mx.validators.Validator;
public class ComboValidator extends Validator
{
// 如果ComboBox中沒(méi)有項(xiàng)目被選中, 則返回這個(gè)錯(cuò)誤信息
public var error:String;
//如果開(kāi)發(fā)者把一個(gè)自定義的項(xiàng)目推進(jìn)ComboBox的數(shù)組中(這種情況我見(jiàn)過(guò)不少)
//我們就會(huì)把這個(gè)項(xiàng)跟已選取的項(xiàng)進(jìn)行對(duì)比。
public var prompt:String;
public function ComboValidator() {
super();
}
//在這里我們進(jìn)行兩個(gè)檢查:
//1. comboBox中有沒(méi)有項(xiàng)目被選中
//2. 開(kāi)發(fā)者有沒(méi)有為comboBox加入自定義的項(xiàng)目
//任何一個(gè)條件為ture的話(huà), 則返回一個(gè)錯(cuò)誤
override protected function doValidation(value:Object):Array
{
var results:Array = [];
if(value as String == prompt || value == null) {
var res:ValidationResult = new ValidationResult(true"""", error);
results.push(res);
}
return results;
}
}
}

還有一種更方便地進(jìn)行復(fù)數(shù)驗(yàn)證的方法, 那就是使用數(shù)組。首先, 我們要把所有需要組件中的validator 都加入到一個(gè)數(shù)組中, 然后使用public static Validator.validateAll 去存取數(shù)組中的所有validator。這種方法對(duì)于需要進(jìn)行復(fù)數(shù)屬性的驗(yàn)證時(shí)是十分有用的。假如任何一個(gè)validator 返回錯(cuò)誤, 這些錯(cuò)誤會(huì)被收集并在Alert 控件中顯示出來(lái):
代碼如下
+展開(kāi)
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="600height="400xmlns:cookbook="oreilly.cookbook.*creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.events.ValidationResultEvent;
import mx.validators.Validator;
import mx.controls.Alert;
[Bindable]
private var validatorArr:Array;
//建立一個(gè)包含所有validator的數(shù)組, 我們將會(huì)以一個(gè)方法對(duì)其進(jìn)行檢查
private function init():void {
validatorArr = new Array();
//push all the validators into the same array
validatorArr.push(rbgValidator);
validatorArr.push(toggleValidator);
validatorArr.push(comboValidator);
}
//對(duì)所有validator數(shù)組中的項(xiàng)目進(jìn)行驗(yàn)證。如果有任何錯(cuò)誤的話(huà), 則會(huì)發(fā)出一個(gè)警告。
private function validateForm():void {
// the validate all method will validate all the
Validators in an array
//passed to the validateAll method
var validatorErrorArray:Array =
Validator.validateAll(validatorArr);;
var isValidForm:Boolean = validatorErrorArray.length == 0;
if (!isValidForm) {
var err:ValidationResultEvent;
var errorMessageArray:Array = [];
for each (err in validatorErrorArray) {
errorMessageArray.push(err.message);
}
Alert.show(errorMessageArray.join("/n"),"Invalid form...", Alert.OK);
}
}

]]>
</mx:Script>
<mx:StringValidator id="rbgValidatorsource="{rbg}"
property="selectedValue"/>

<mx:NumberValidator id="toggleValidatorsource="{toggleButton}"
property="selectedIndexallowNegative="false"
negativeError="Please select a Radio Button"/>

<cookbook:ComboValidator id="comboValidatorerror="Please
Select A State
prompt="{stateCB.prompt}"
source="{stateCB}property="selectedItem"/>

<mx:Form id="form">
<mx:FormItem>
<mx:ComboBox id="stateCBdataProvider="{someDataProvider}"
prompt="Select AState"/>

</mx:FormItem>
<mx:FormItem>
<mx:RadioButtonGroup id="rbg"/>
<mx:RadioButton group="{rbg}label="firstid="first"/>
<mx:RadioButton group="{rbg}id="secondlabel="second"/>
<mx:RadioButton id="thirdlabel="thirdgroup="{rbg}"/>
</mx:FormItem>
<mx:FormItem>
<mx:ToggleButtonBar id="toggleButton">
<mx:dataProvider>
<mx:Array>
<mx:String> First Option </mx:String>
<mx:String> Second Option </mx:String>
<mx:String> Third Option </mx:String>
<mx:String> Fourth Option </mx:String>
<mx:String> Fifth Option </mx:String>
</mx:Array>
</mx:dataProvider>
</mx:ToggleButtonBar>
</mx:FormItem>
</mx:Form>
<mx:Button label="validateclick="validateForm()"/>
</mx:VBox>
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 象州县| 青海省| 兴业县| 堆龙德庆县| 南平市| 株洲县| 三门峡市| 武陟县| 泰和县| 南投市| 常熟市| 炎陵县| 聊城市| 仁寿县| 晋宁县| 凭祥市| 安徽省| 翁牛特旗| 温州市| 家居| 宁波市| 元阳县| 兴宁市| 新平| 建湖县| 新宾| 贵德县| 任丘市| 武宁县| 昌乐县| 攀枝花市| 云浮市| 田东县| 长宁区| 绥芬河市| 潢川县| 察哈| 青河县| 育儿| 军事| 新巴尔虎右旗|