2012-12-23 36 views
1

我正在爲我的學校項目製作一個在線商店,並且我遇到了一個我無法解決的問題。組合狀態和驗證器 - flash生成器

現在我爲用戶填寫表單並添加了一些驗證器來檢查用戶是否填寫了正確的信息。用戶填寫表單後,他們可以單擊submit按鈕繼續。

我也在與國家合作,所以當我按下submitbutton時,我會轉到下一頁。

現在我的問題是:即使用戶不填寫表單,他點擊「提交」,他仍然會進入下一頁。驗證工作,但它不會停止用戶繼續。

這是我的驗證代碼

<mx:EmailValidator id="emailValidator" 
         source="{email}" 
         property="text" 
         triggerEvent="change"/> 
    <mx:StringValidator id="nameValidator" 
         source="{Name}" 
         property="text" 
         requiredFieldError="Put in a name" 
         triggerEvent="change"/> 
    <mx:StringValidator id="SurnameValidator" 
         source="{Surname}" 
         property="change" 
         requiredFieldError="Put in a surname" 
         triggerEvent="click"/> 
    <s:NumberValidator id="PostcodeValidator" 
         source="{Postcode}" 
         property="text" 
         requiredFieldError="Put in a zipcode" 
         triggerEvent="change"/> 

Now按鈕代碼

<s:Button label="submit" 
       id="submitButton" 
       click="currentState='Shoppingstate'"/> 

回答

1

您可以綁定到驗證狀態

+0

我的直覺告訴我,這是不行的;如何防止某人點擊「提交」而不輸入任何數據?默認狀態 - 我懷疑 - 將會激活。 – JeffryHouser

+0

沒有什麼能阻止你設置enabled = false作爲默認值。 – user1875642

+0

Aww,是的。這可能會奏效。 – JeffryHouser

-1

我會在每場進行檢查,提交按鈕的enabled屬性。首先改變的提交按鈕單擊事件處理程序的形式化方法:

<s:Button label="submit" 
       id="submitButton" 
       click="onSubmit(event)"/> 

然後檢查方法的驗證方法:

protected function onSubmit(event:Event):void{ 
if((email.errorString == '') && (Name.errorString == '') && (Surname.errorString == '') (Postcode == '')){ 
currentState='Shoppingstate' 
} 
} 
+0

爲什麼這會降低投票率? – JeffryHouser