我有一個相當先進的TabPanel
我正在開發的嚮導,我似乎無法讓它正常運行。基本上,我有4個選項卡...每個選項卡都是自己的形式,因爲選項卡需要對其自身進行驗證,因此它可以確定是否需要禁用其右側的選項卡,或者是否應啓用下一個選項卡。高級選項卡面板嚮導
我遇到的主要問題是非呈現標籤認爲它是有效的,實際上,它的字段設置爲allowBlank: false
,並且它有一個空值。然後是相反的,我設置了一個值,但它認爲它是無效的。
另一個怪癖是,我必須在調用面板加載時調用this.getViewModel().notify()
...否則,當我檢查初始有效性時,我激活的表單認爲它是無效的......儘管如此,我認爲這與綁定有關延遲,所以我現在可以處理這個。
我可以使用deferredRender: false
來解決這個問題,但我不想,因爲在我的實際應用程序中,這些選項卡在每個選項卡上都有點不同,所以這不是很高效。
In my Fiddle,你會看到3個選項卡啓用,實際上,它應該已經啓用了4個選項卡,因爲第3個選項卡有來自其模型的數據,但該選項卡認爲它無效。由於該標籤認爲它是無效的,因此我重新啓動了我的checkValidity方法,因爲我檢查isValid是否爲false(這是爲了禁用右側的任何標籤,如果當前標籤變爲無效,並且用戶被迫繼續,這是設計)。在控制檯:
- TAB3認爲這是無效的,因爲它被設置爲 allowBlank這是不正確的:假的,但它綁定了一個值
- TAB4會認爲它是有效的,這是不正確的,因爲它設置爲allowBlank:false並且沒有值
有沒有人有任何見解?我是否在談論這個可怕的錯誤?
感謝您瀏覽整個調試過程......這正是我所想的。但是,事情就是這樣,如果表單有一個allowBlank字段:false和一個空值,那麼這個表單就不應該是有效的......這真的很奇怪。按照設計,這應該說它是無效的,所以tab4也應該是無效的。錯誤爲true的問題在於它會觸發很多次(由於isValid被調用),並且它不是所需的行爲,因爲其他選項卡可能在選項卡變爲無效後啓用。 – incutonez
表單對於空值不允許有空值的字段無效。這就是爲什麼tab3無效。問題在於表單在構建和呈現之前根本沒有字段。並且_zero_字段的表單有效。 –
羅伯特,使用該邏輯,tab3尚未呈現,所以它應該仍然有效。 – incutonez