2016-07-05 161 views
0

我有很多類似的代碼我可以製作TextInput嗎?

if (myTextInput.text != "") { 
    handleEvent(); 
} 

確實的TextInput有一些財產,我可以使用自動檢查一個空字符串?
如何,如果我把它喜歡類似:

<s:TextInput id="myInput" enter="myInputHandler()" restrict="A-Za-Z0-9"/> 

那麼如果文字是字母數字myInputHandler()只被調用。我想添加一個額外的限制,長度大於0.

我知道驗證器,但我仍然需要手動調用它們。

回答

3

使「嘀」一聲TextInput組件,您例如,可以創建自己的文本輸入組件,並使用屬性來指示是否需要該控件,以及某些事件偵聽器(例如FocusEvent.FOCUS_OUT事件)強制用戶在該輸入中輸入內容。

爲此,藉此例如:

package myComponent 
{ 
    import flash.events.FocusEvent;  
    import spark.components.TextInput; 

    public dynamic class MyTextInput extends TextInput 
    { 
     private var _required:Boolean = false; 
     public function MyTextInput() 
     { 
      super(); 
      this.addEventListener(FocusEvent.FOCUS_OUT, on_KeyDown); 
     } 
     public function set required(required:Boolean): void { 
      this._required = required; 
     } 
     public function get required(): Boolean { 
      return this._required; 
     }  
     private function on_KeyDown(e:FocusEvent): void {   
      if(this.text == '' && this._required){ 
       this.setFocus(); 
      } 
     } 

    } 
} 

當然,這只是一個例子,你可以用,當你的用戶輸入的左空任何你想要的行爲......

然後使用新組件:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       <!-- don't forget to include the namespace definition for your custom component --> 
       xmlns:MyComponent="myComponent.*"> 

    <MyComponent:MyTextInput required="true" restrict="A-Za-z0-9"/> 

</s:Application> 

有關創建自己的組件的更多信息,請參閱here

希望能有所幫助。

+0

我打算繼續接受這一天,如果有簡單的事情我們都可以忽略,但是這是解決我的問題,並且是我正在尋找的事情。 – JETM

0

嘗試:

if (String(myTextInput.text).length > 0) 
{ 
    handleEvent(); 
} 

如果這是你需要的所有代碼(沒有額外的命令),那麼剛剛做的一個行:

if (String(myTextInput.text).length > 0) { handleEvent(); } 
+0

我認爲,OP的問題是避免重複的代碼而不是代碼本身; - ) – akmozo

+0

嗨@akmozo,你爲什麼這麼想?我看了一下_「TextInput是否有一些屬性可以用來自動檢查一個空字符串?」_...他們用'IS NOT'「'檢查,所以我推薦'IF長度大於0'的代碼檢查。這是基於_「我想添加一個額外的限制,長度大於0」_。他們從來沒有說過不重複。我的理解是,他們更喜歡用** String length **而不是** String內容**進行檢查。 –

+1

嗨,我認爲,OP正在尋找一些屬性,如HTML5的'required',以強制用戶輸入文本(或至少檢查輸入是否爲空,而不必每次都寫入相同的檢查代碼:'txt.text! ='''或'txt.length == 0' ...) – akmozo

0

也許,這是不是一種解決方案,但是,你可以把文本字段成的FormItem,它具有「必需的」場

相關問題