2014-02-21 43 views
2

我是新的flex 4.在我的示例應用程序中,我使用驗證程序。它顯示控件旁邊的錯誤消息和圖標。我的問題是,如何刪除這些錯誤信息和錯誤圖標?我想在鼠標懸停在特定的控件上時將我的錯誤信息顯示爲errorTip。Flex 4 - 如何在FormItem中設置errorTip?

謝謝。

編輯

我的示例代碼。我正在使用這個與其他一些控件

<fx:Declarations> 
    <mx:StringValidator id="nameValidator" 
         source="{employeeName}" 
         property="text" 
         tooLongError="Too long error" 
         tooShortError="Too short error" 
         maxLength="20" minLength="4"/> 

</fx:Declarations> 

<s:layout> 
    <s:VerticalLayout/> 
</s:layout> 
<mx:HDividedBox> 
    <s:Panel> 
     <s:Form> 
      <s:FormItem>       
       <s:TextInput id="employeeName"/>       
      </s:FormItem> 
      <s:FormItem>       
       <s:TextInput id="employeeID"/>      
      </s:FormItem> 
     </s:Form> 
    </s:Panel> 
</mx:HDividedBox> 

此代碼顯示帶錯誤圖標的錯誤消息。

而且

<fx:Declarations> 
    <mx:StringValidator id="nameValidator" 
         source="{employeeName}" 
         property="text" 
         tooLongError="Too long error" 
         tooShortError="Too short error" 
         maxLength="20" minLength="4"/> 

</fx:Declarations> 

<s:layout> 
    <s:VerticalLayout/> 
</s:layout> 
<mx:HDividedBox> 
    <s:Panel> 
     <s:Form>      
      <s:TextInput id="employeeName" /> 
      <s:TextInput id="employeeID" /> 
     </s:Form> 
    </s:Panel> 
</mx:HDividedBox> 

此代碼不顯示錯誤圖標和錯誤消息。當鼠標懸停在TextInput控件上時,它只顯示錯誤提示。我想爲我的代碼提供這個錯誤提示。

更新

 <mx:StringValidator 
     id="userName" 
     source="{employeeName}" 
     property="text" 
     minLength="4" maxLength="20" 
     triggerEvent="rollOver" 
     trigger="{employeeName}"/> 
<s:layout> 
    <s:VerticalLayout/> 
</s:layout> 
<mx:HDividedBox> 
    <s:Panel> 
     <s:Form> 
      <s:FormItem>  
       <mx:HBox> 
       <s:TextInput id="employeeName"/> 
           </mx:HBox>      
      </s:FormItem> 
      <s:FormItem>       
       <s:TextInput id="employeeID"/>      
      </s:FormItem> 
     </s:Form> 
    </s:Panel> 
</mx:HDividedBox> 

現在我這樣做。

我的電流輸出是第一張照片,而第二個是我需要:
enter image description here

+0

哇..那是一個令人困惑的問題...一些示例代碼將有助於理解您現在正在做什麼 –

+0

我們只能在FormItem上看到錯誤消息和錯誤圖標。我不知道原因。我不知道如何改變這個錯誤提示。 – user

回答

0

你必須重寫和修改默認FormItemSkin.mxml來做到這一點。

  1. 取出errorTextDisplay組件

    <s:RichText id="errorTextDisplay" includeIn="errorStates" 
         fontStyle="italic" fontWeight="normal" color="0xFE0000" 
         left="helpCol:27" right="helpCol:10" 
         bottom="row1:5" baseline="row1:0" 
         maxDisplayedLines="-1"/> 
    
  2. 設置contentGroup的showErrorTip爲true

    <!-- Don't show the error tip on the content elements --> 
    <s:Group id="contentGroup" showErrorTip="true" showErrorSkin="true" 
        left="contentCol:0" right="contentCol:1" 
        baseline="row1:0" bottom="row1:5"> 
    

參考這些鏈接。

link 1Link 2

我相信,它會幫助你

+0

哇....精湛...這完全正確。非常感謝你的用戶。現在我通過你的代碼完成了它。 – user

0

我建議你在使用Adobe的文檔的FLEX樣本一探究竟。 http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7f52.html

我想你需要的是與「清除驗證錯誤」示例類似,你只需要自動觸發驗證。

更新 - 這裏是示例代碼,對我的作品

妍需要調用中TextInput側翻事件的方法...

<?xml version="1.0" encoding="utf-8"?> 
<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" minWidth="955" minHeight="600"> 


<s:layout> 
    <s:VerticalLayout/> 
</s:layout> 

<fx:Declarations> 
    <mx:StringValidator 
     id="userNameValidator" 
     source="{employeeName}" 
     property="text" 
     minLength="4" maxLength="20"/> 
</fx:Declarations> 

<fx:Script> 
    <![CDATA[ 

     import mx.events.ValidationResultEvent; 
     private var vResult:ValidationResultEvent; 

     // Function to validate data and submit it to the server. 
     private function validateAndSubmit():void { 
      // Validate the required fields. 
      vResult = userNameValidator.validate(); 
      if (vResult.type==ValidationResultEvent.INVALID) 
       return;    
     } 

     // Clear the input controls and the errorString property 
     // when resetting the form. 
     private function resetForm():void { 
      employeeName.text = ''; 
      employeeName.errorString = ''; 
     } 
    ]]> 
</fx:Script> 

<mx:HDividedBox> 
    <s:Panel> 
     <s:Form> 
      <s:FormItem>  
       <s:TextInput 
        id   = "employeeName" 
        rollOver = "validateAndSubmit()"/> 
      </s:FormItem> 
      <s:FormItem>       
       <s:TextInput 
        id   = "employeeID"/>      
      </s:FormItem> 
      <s:FormItem>       
       <s:Button 
        label  = "Clear" 
        click  = "resetForm()"/> 

      </s:FormItem> 
     </s:Form> 
    </s:Panel> 
</mx:HDividedBox> 


</s:Application> 
+0

部分這是正確的。現在,我可以在窗體重置時清除驗證錯誤。但是當鼠標在組件上滾動時,我需要errorTip。我從[URL](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/validators/NumberValidator.html#includeExamplesSummary)中獲得了一些信息。但是這也不太好。我不知道該怎麼辦? – user

+0

正如我告訴你的......你需要手動調用RollOver事件的驗證。 (更具體地說,你需要調用validateAndSubmit() - 來自url內的示例) –

+0

現在我添加了觸發器和triggerEvent。但我真的很抱歉。它不顯示任何錯誤提示。 – user