<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Flex2.0中使用Validator

    Posted on 2006-04-14 11:14 云自無心水自閑 閱讀(1827) 評論(1)  編輯  收藏 所屬分類: FlexFlex2
    在Flex2.0中, Validator組件的使用方式和1.5中相比, 進(jìn)行了一些改變, 不再需要定義Model, 可以在Validator屬性中直接引用Form成員了.
    ????<mx:Form?id="loginForm">
    ????????
    <mx:Text?text="?{AtsModelLocator.getInstance().loginFailMessage?}"?width="80%"?color="red"/>
    ????
    ????????
    <mx:FormItem?label="Username:?"?required="true">
    ????????????
    <mx:TextInput?id="username"?/>
    ????????
    </mx:FormItem>

    ????????
    <mx:FormItem?label="Password:?"?required="true">
    ????????????
    <mx:TextInput?id="password"?/>
    ????????
    </mx:FormItem>
    ????
    </mx:Form>


    ????
    <mx:ControlBar>
    ????????
    <mx:Button?id="loginSubmit"?label="Login"?mouseUp="loginUser()"/>
    ????
    </mx:ControlBar>
    ????
    ????
    <mx:StringValidator?id="userNameValidator"?source="{username}"?property="text"
    ????????tooShortError
    ="This?string?is?shorter?than?the?minimum?allowed?length?of?3.?"?
    ????????tooLongError
    ="This?string?is?longer?than?the?maximum?allowed?length?of?20."?
    ????????minLength
    ="4"?maxLength="20"/>

    ????
    <mx:StringValidator?id="userPassValidator"?source="{password}"?property="text"
    ????????tooShortError
    ="This?string?is?shorter?than?the?minimum?allowed?length?of?6.?"?
    ????????tooLongError
    ="This?string?is?longer?than?the?maximum?allowed?length?of?10."?
    ????????minLength
    ="4"?maxLength="20"/>

    這樣就定義好了兩個(gè)Validator, 可以對用戶名和用戶密碼進(jìn)行校驗(yàn).
    但是怎么使用這兩個(gè)Validator呢?

    我是這樣用的:
    ????<mx:Script>
    ????
    <![CDATA[
    ????????import?mx.controls.Alert;
    ????????import?mx.events.ValidationResultEvent;
    ????????import?mx.validators.ValidationResult;??
    ????????????
    ???????import?com.ats.vo.LoginVO;
    ???????import?com.ats.control.LoginEvent;
    ???????
    ???????import?mx.validators;
    ???????
    ???????public?
    function?loginUser()?:?void
    ???????{
    ??????????
    if?(?!?modelCheckValid?)?{
    ??????????????modelCheckValid?
    =?true;
    ??????????????
    return;
    ??????????}
    ???????????
    ??????????
    var?loginVO?:?LoginVO?=?new?LoginVO();
    ??????????loginVO.username?
    =?username.text;
    ??????????loginVO.password?
    =?password.text;
    ????????????
    ????????????
    var?event?:?LoginEvent?=?new?LoginEvent(?loginVO?);
    ????????????dispatchEvent(?event?);
    ???????}
    ???????
    ???????private?
    var?modelCheckValid?:?Boolean?=?true;
    ????]]
    >
    ????
    </mx:Script>

    ????
    <mx:Form?id="loginForm">
    ????????
    <mx:Text?text="?{AtsModelLocator.getInstance().loginFailMessage?}"?width="80%"?color="red"/>
    ????
    ????????
    <mx:FormItem?label="Username:?"?required="true">
    ????????????
    <mx:TextInput?id="username"?/>
    ????????
    </mx:FormItem>

    ????????
    <mx:FormItem?label="Password:?"?required="true">
    ????????????
    <mx:TextInput?id="password"?/>
    ????????
    </mx:FormItem>
    ????
    </mx:Form>


    ????
    <mx:ControlBar>
    ????????
    <mx:Button?id="loginSubmit"?label="Login"?mouseUp="loginUser()"/>
    ????
    </mx:ControlBar>
    ????
    ????
    <mx:StringValidator?id="userNameValidator"?source="{username}"?property="text"
    ????????tooShortError
    ="This?string?is?shorter?than?the?minimum?allowed?length?of?3.?"?
    ????????tooLongError
    ="This?string?is?longer?than?the?maximum?allowed?length?of?20."?
    ????????minLength
    ="4"?maxLength="20"
    ????????invalid
    ="modelCheckValid=false"
    ????????trigger
    ="{loginSubmit}"
    ????????triggerEvent
    ="mouseDown"/>

    ????
    <mx:StringValidator?id="userPassValidator"?source="{password}"?property="text"
    ????????tooShortError
    ="This?string?is?shorter?than?the?minimum?allowed?length?of?6.?"?
    ????????tooLongError
    ="This?string?is?longer?than?the?maximum?allowed?length?of?10."?
    ????????minLength
    ="4"?maxLength="20"
    ????????invalid
    ="modelCheckValid=false"
    ????????trigger
    ="{loginSubmit}"
    ????????triggerEvent
    ="mouseDown"/>



    為什么這么復(fù)雜地在Validator中定義trigger, triggerEvent呢?
    原因是這樣的: 如果不是在Validator的invalid事件中去設(shè)置modelCheckValid這個(gè)標(biāo)志量.
    就需要在loginUser()函數(shù)中對所有Validator進(jìn)行判斷, 代碼會顯得比較臃腫復(fù)雜.
    而且如果需要考慮是否需要一次性顯示出所有校驗(yàn)失敗的錯(cuò)誤.
    代碼示例:
    ????<mx:Script>
    ????
    <![CDATA[
    ????????import?mx.controls.Alert;
    ????????import?mx.events.ValidationResultEvent;
    ????????import?mx.validators.ValidationResult;??
    ????????????
    ???????import?com.ats.vo.LoginVO;
    ???????import?com.ats.control.LoginEvent;
    ???????
    ???????import?mx.validators;
    ???????
    ???????public?
    function?loginUser()?:?void
    ???????{
    ???????
    ??????????
    var?vrEvent?:?ValidateResultEvent;
    ??????????
    ??????????
    var?checkFailed?:?Boolean?=?false;
    ??????????
    ??????????vrEvent?
    =?userNameValidator.validate();
    ??????????
    if?(?vrEvent.results?!=?null?&&?vrEvent.results.length?>?0?)?{
    ??????????????
    //?驗(yàn)證失敗
    ??????????????checkFailed?=?true;
    ??????????}
    ??????????
    ??????????vrEvent?
    =?userPassValidator.validate();
    ??????????
    if?(?vrEvent.results?!=?null?&&?vrEvent.results.length?>?0?)?{
    ??????????????
    //?驗(yàn)證失敗
    ??????????????checkFailed?=?true;
    ??????????}
    ??????????
    ??????????
    if?(?checkFailed?)?return;
    ???????????
    ??????????
    var?loginVO?:?LoginVO?=?new?LoginVO();
    ??????????loginVO.username?
    =?username.text;
    ??????????loginVO.password?
    =?password.text;
    ????????????
    ????????????
    var?event?:?LoginEvent?=?new?LoginEvent(?loginVO?);
    ????????????dispatchEvent(?event?);
    ???????}
    ???????
    ????]]
    >
    ????
    </mx:Script>

    ????
    <mx:Form?id="loginForm">
    ????????
    <mx:Text?text="?{AtsModelLocator.getInstance().loginFailMessage?}"?width="80%"?color="red"/>
    ????
    ????????
    <mx:FormItem?label="Username:?"?required="true">
    ????????????
    <mx:TextInput?id="username"?/>
    ????????
    </mx:FormItem>

    ????????
    <mx:FormItem?label="Password:?"?required="true">
    ????????????
    <mx:TextInput?id="password"?/>
    ????????
    </mx:FormItem>
    ????
    </mx:Form>


    ????
    <mx:ControlBar>
    ????????
    <mx:Button?id="loginSubmit"?label="Login"?mouseUp="loginUser()"/>
    ????
    </mx:ControlBar>
    ????
    ????
    <mx:StringValidator?id="userNameValidator"?source="{username}"?property="text"
    ????????tooShortError
    ="This?string?is?shorter?than?the?minimum?allowed?length?of?3.?"?
    ????????tooLongError
    ="This?string?is?longer?than?the?maximum?allowed?length?of?20."?
    ????????minLength
    ="4"?maxLength="20"/>

    ????
    <mx:StringValidator?id="userPassValidator"?source="{password}"?property="text"
    ????????tooShortError
    ="This?string?is?shorter?than?the?minimum?allowed?length?of?6.?"?
    ????????tooLongError
    ="This?string?is?longer?than?the?maximum?allowed?length?of?10."?
    ????????minLength
    ="4"?maxLength="20"/>

    這種方法也是可行的.
    至于具體使用哪一個(gè), 憑自己的喜好了.



    評論

    # re: Flex2.0中使用Validator  回復(fù)  更多評論   

    2007-09-27 09:45 by tiangej
    《目的》:
    畫面項(xiàng)目"用戶id"必須是英文數(shù)字,且長度在4--20之間。
    于是我計(jì)劃用 mx:StringValidator(字符串驗(yàn)證) 和 mx:RegExpValidator(正則驗(yàn)證)同時(shí)作用于上述的項(xiàng)目上。

    《結(jié)果》:
    只有最后定義的驗(yàn)證項(xiàng)發(fā)揮作用。

    《問題》:
    是否能夠?qū)ν惠斎腠?xiàng)目進(jìn)行兩種以上的數(shù)據(jù)校驗(yàn)(用Validator對象)?
    主站蜘蛛池模板: 国产免费一级高清淫曰本片| 你懂的在线免费观看| 亚洲国产av高清无码| 亚洲黄色在线观看| 亚洲国产av高清无码| 亚洲午夜精品久久久久久app| 亚洲youjizz| 亚洲精品理论电影在线观看| 亚洲人成电影网站色| 爱爱帝国亚洲一区二区三区| 黄色免费网站在线看| 亚洲欧洲国产综合| 亚洲午夜一区二区电影院| 99久久国产亚洲综合精品| 久久亚洲欧美国产精品| 成在线人直播免费视频| 三年片免费高清版 | 5555在线播放免费播放| 免费无遮挡无码视频在线观看 | 麻豆国产入口在线观看免费| 国产免费人成在线视频| 男女超爽刺激视频免费播放 | 国产成人亚洲毛片| 人与动性xxxxx免费| 国产成人免费ā片在线观看老同学| 无码精品国产一区二区三区免费| 1000部羞羞禁止免费观看视频 | 久草免费福利视频| 亚洲一级免费毛片| 免费观看毛片视频| 国产国拍亚洲精品福利 | 亚洲国产精品乱码一区二区| 91大神亚洲影视在线| 亚洲砖码砖专无区2023| 免费一级全黄少妇性色生活片 | 免费无码VA一区二区三区| 99精品国产免费久久久久久下载| 可以免费观看的一级毛片| 亚洲成a人片在线观看无码| 亚洲乱人伦精品图片| 免费无码婬片aaa直播表情|