2012-07-25 19 views
0

我有一個看起來像下面這樣的形式:Adob​​e Flex的形式損失焦點,這樣默認的按鈕不起作用

<mx:HBox width="100%" horizontalAlign="center" verticalAlign="middle"> 
     <mx:Panel horizontalAlign="center" 
        title="{resourceManager.getString('Resources','views.login.title')}" 
        verticalAlign="middle"> 
      <mx:Form id="loginForm" defaultButton="{loginButton}"> 
       <mx:FormItem label="{resourceManager.getString('Resources','views.login.ip')}"> 
        <mx:Label id="url" text="{url}"/> 
       </mx:FormItem> 
       <mx:FormItem label="{resourceManager.getString('Resources','views.login.username')}" 
          required="true"> 
        <mx:TextInput id="username"/> 
       </mx:FormItem> 
       <mx:FormItem label="{resourceManager.getString('Resources','views.login.password')}" 
          required="true"> 
        <mx:TextInput id="password" displayAsPassword="true"/> 
       </mx:FormItem> 
      </mx:Form> 
      <mx:FormItem direction="horizontal" width="100%" horizontalAlign="right" paddingBottom="2" paddingRight="2"> 
       <mx:Button id="loginButton" 
          label="{resourceManager.getString('Resources','views.login.loginBtn')}"/> 
      </mx:FormItem> 
     </mx:Panel> 
    </mx:HBox> 

的遭遇我有時(並不總是)的行爲,當我從用戶名密碼選項卡然後嘗試點擊「Enter」,Botton的點擊回調不會被調用。如果我點擊標籤(id是「url」),然後進入任何文本框,「輸入」鍵的作品就好了。我假設表格以某種方式繼續失去焦點。我希望能解決這個問題。

+1

通常,當用戶按下回車鍵時,我會偵聽輸入框上的keyUp事件。該解決方案也可以在這裏工作。 – JeffryHouser 2012-07-25 16:44:35

+0

這可能是一個潛在的解決方案,但使用defaultButton有什麼問題?至少在理論上這不是首選的方式嗎? – Sergey 2012-07-25 17:12:12

+0

我不確定首選的方式是什麼。在很多情況下;我發現mx:Form不支持​​我的客戶請求的佈局,所以只能用於快速和骯髒的POC。我不確定應該更靈活的Spark形式。 – JeffryHouser 2012-07-26 01:42:32

回答

2

我最近經歷過同樣的問題,你找到根源了嗎?我發現解決方法是將defaultButton設置爲creationComplete處理程序,而不是mxml標記。我在Flex4.1中看到了這個問題,我沒有在Flex 3.6中看到它。雖然我沒有嘗試flex 4.6。

+0

我可以證實這一點...我在BorderContainer的MXML中設置了defaultButton,但它不起作用,但將它設置在ceationComplete處理程序中完成了這項工作:-)感謝那個指針 – 2012-09-26 10:30:27