2009-12-08 111 views
2

我有一個Flex應用程序編輯一箇中等複雜的對象,我想放一些客戶端驗證到位編輯器的多個部分。編輯器是一組嵌套對象:什麼是驗證複雜Flex表單的最佳方式?

Form -> 
    TabNavigator -> 
     Tab1 -> 
      Component1.1 
      Component1.2 
     Tab2 -> 
      Component2.1 
      Component2.2 
    &c 
    SubmitButton 

結構相呼應的數據模型相當緊密,用戶界面是什麼項目需要,所以我不會太快速重組類如果有我不必 - 時間也是一個問題。我想要做的是有驗證每個Component*實例是的:

  • 顯示的驗證工具,技巧和UI提示相關的UI元素
  • 禁用提交按鈕上時,窗體的任何部分無效
  • (可選)提供足夠的信息,以便我可以在窗體中顯示錯誤消息。

什麼是去了解它的最好方法?

回答

0

我想你已經檢查mx.validators.Validator類和它的不同子類中像

  • CreditCardValidator
  • CurrencyValidator
  • DateValidator
  • EmailValidator
  • NumberValidator
  • PhoneNumberValidator
  • RegExpValidator
  • SocialSecurityValidator
  • StringValidator
  • ZipCodeValidator
+0

是的。 我對Flex 101不感興趣;我想要一個設計的想法,可以很容易地擴展窗體,同時保留所有子窗體和各種各樣的深度驗證。 – 2009-12-09 15:55:13

2

在創建表格,創建一個數組來保存你的表單組件的所有驗證引用。然後,當用戶提交表單,檢查所有的輸入通過您的標準。

if ((Validator.validateAll(validatorArr) as Array).length != 0){ 
    Alert.show("There are errors on the form. Please correct before saving.", "Form Errors");} 
else { /* do something*/} 
1

處理這種情況下,使用經過太多次,我終於決定寫我自己的窗體的子類,它提供了所有元素作爲內置行爲的確認。

的想法演變從那裏很長的路要走,但如果你很好奇,看看開源項目,我在

http://bitbucket.org/rpathsync/smartform

SmartForms(和SmartFormItems)上發表到位桶處理表單創建和驗證等使用XML「描述符」。主要原因是允許服務器生成的表單,因爲我們經常處理客戶端沒有先驗知識的對象(我們的服務器是可插入的,因此需要服務器提供的表單描述符)

還有更多的方法代碼有可能比你想要的,但在庫中的驗證相關的類可能是有趣的你。

相關問題