今日は少し時間が取れました。
ASP.NETのvalidatesummary?みたいに集約してエラー出したいなって場面が出てきました。
画面構成上、タブパネルで入力させるかたちになってるんですが、
ほかのタブに必須項目とかあると集約したエラー情報がないと
背面のタブで発生しているエラー情報が見えないわけで。
フォーム中のバリデータに引っかかったものってアンダーラインで表示されたり。
でわかるんですが、
一部の方々は「なんじゃこの赤いアンダーラインは?」
で思考がとまるケースもあるんじゃないかな。。。
そのためのqtipに出してもそうなるばあいもあるんでしょうね。多分。
で、summaryに吐き出すみたいなことってできないのでしょうか?
ってことでデータを覗いてみるテスト。
ExtJs内部でもform.items.をぶんまわしてvalidateでみて引っかかればfalse
で返しているぶぶんがあったので。。。。
===============
this.items.each(function(f){
if(!f.validate()){
valid = false;
}
});
//フィールドf.validateって
getRawValueで持ってきてチェックしている。
===============
ってことはそれを捕まえられればいいわけだ。
①イベントを調べよう。
②フォームの中を見てみよう。
となるわけです。
①APIリファレンス見ると、、actionfailedってやつがありました!!
ですのでFormPanelのInitComponentで
this.on('actionfailed', this.onActionFailed, this );
こんな具合に登録を。
②に中をのぞくってことでイベントリスナーの実装で。
まだテストじっそうなので煩雑だけど一応こんなかんじなんだろうな。
onActionFailed: function( form, action )
{
var invalidateSummary = '';
//フォームのアイテムを回してだめなやつのinvalideTextを参照する。
form.items.each(function(field){
// なかで情報取得してチェックしているので
if(!field.validate()){
//
invalidateSummary = invalidateSummary + field.name + ':' + field.invalidText + '
';
}
});
}
あとは一番最初に引っかかったコントロールにフォーカスをあわせてやる。
ってことでどうだろう。これをプラグインにしてサマリコントロールとして汎用にしてとか。
これはまた後日。
ちょっとすっきりした。
転職用の日記だったのですが趣味でExtJsを使用して遊んでます。 いろいろと作業期間があく為、そのための備忘録ブログです。記事内容等で問題等があっても責任は取りません。とうとう趣味プログラマになりました。
登録:
コメントの投稿 (Atom)
node + ejs + Socket.io のサンプル
まずい。。 一年間、一回も更新してない!!! つまり、、 趣味の時間がほぼ皆無ということの現れです。 業務と子育てに追われた一年でしたね。。。。。 危なく年をこすところだった。あぶない。なぶあい。 話を変えて。 今月初旬に 社内でちょっとしたプレゼンをする事に...
-
bakeでBancha用のモデルとコントローラの作成 bakeで自動生成します。 まず、カレントディレクトリをappにして cd UserDir/public_html/app ./Console/cake bake を実行。 DB設定 Welcome...
-
banchaを使ってみる banchaのサイトは こちら から インストールから まずはCakeの設置。 (bancha:0.9.5はcake2.1.X(現在は2.1.5)に対応しています。 Dispacherの実装が2.2.Xだとことなるため、Banch...
-
疎通させてみる Bancha使ってみたくて cakeをざっと流し読みしたけど、 まだ疎通できてないので疎通させてみようと思います。 お題はBanchaのサンプルをMVCに再配置、と、 テスト的にコンポーネントからイベント発火させて Mainコントローラでディスパッ...
0 件のコメント:
コメントを投稿