私は先進的なTabPanel
ウィザードを持っており、正しく動作するようには見えません。基本的には4つのタブがあります。各タブは独自のフォームです。タブはそれ自体で検証を行う必要があるため、タブを右に無効にする必要があるかどうか、または次のタブを有効にする必要があるかどうかを判断できます。高度なタブパネルウィザード
私が取り組んでいる主な特徴は、レンダリングされていないタブは、実際にフィールドがallowBlank: false
に設定されているときに有効であると判断し、空の値を持つということです。それから私は値のセットを持っている逆がありますが、それは無効だと思います。
タブパネルの読み込み時にthis.getViewModel().notify()
に電話する必要があります。そうでなければ、私の有効化されたフォームは、初期の有効性をチェックすると無効と判断します...しかし、これはバインディング遅れているので、私は今これを処理することができます。
この問題を解決するにはdeferredRender: false
を使用できますが、私の実際のアプリケーションでは、タブがそれぞれかなり進んでいるので、あまり効果がありません。
In my Fiddleの3つのタブが有効になっているはずですが、実際には有効な3つのタブが表示されます。タブは無効だと思うので、isValidがfalseであることをチェックするので、checkValidityメソッドを再起動します(これは、現在のタブが無効になり、ユーザーが続行を強制された場合は右側のタブを無効にします。設計)。コンソールで:
- TAB3は、それが allowBlankに設定されているため、真されていない、それは無効だと思っ:偽、それはTAB4があるため、真されていない、それが有効だと思います
- それにバインドされた値を持っていますallowBlank:falseに設定されていて、値がありません。
洞察力はありますか?私はこれについてひどく間違っていますか?
デバッグプロセス全体を歩いていただきありがとうございました...それは私が考えていたことです。しかし、ここには、allowBlank:falseおよび空の値を持つフィールドがある場合、フォームは有効ではありません。これは本当に奇妙です。設計上、有効ではないと言わざるをえないので、tab4も無効にする必要があります。 falseからtrueへの問題は、タブが無効になった後に他のタブが有効になる可能性があるため、(isValidが呼び出されたために)何度も起動し、望ましい動作ではないことです。 – incutonez
空の値を持つ空白の値を許可しないフィールドでは、フォームは有効ではありません。それがtab3が有効でない理由です。問題は、フォームが構築され、レンダリングされるまで、フォームにフィールドが全くないことです。そして、_zero_フィールドを持つフォームが有効です。 –
Robertは、そのロジックを使用して、tab3はまだレンダリングされていないので、まだ有効であるはずです。 – incutonez