PDA

View Full Version : Ext.Msg.showの後OKボタンにフォーカス移動



densan@tenrikyo.or.jp
18 Mar 2009, 10:39 PM
エラーメッセージを以下のように表示していますが
Ext.Msg.show({
title:'',
msg: 'メッセージ',
buttons: Ext.MessageBox.OK,
closable :false,
fn:function(){


},
icon: Ext.MessageBox.ERROR
});

OKボタンにフォーカスを持っていくにはどうすればいいのでしょうか?
英語のフォーラムをいろいろと見ましたが,以下のようなスレッドの回答があったのですが同じようにやってみましたがうまくいきません
>var dlg = Ext.Msg.confirm('Confirm', 'Do you really want to do this?', fnDoThis).getDialog();
>dlg.defaultButton = 2;
>dlg.focus();

どなたか,ご教授ください

amanoman
19 Mar 2009, 12:38 AM
はじめまして、densanさん
dlg.defaultButtonでセットしている値が、正しくないと思われます。
Ext.messageBoxのボタンは、メッセージボックス内に、"yes","no"ボタンしか表示されていなくても、内部では、"ok","yes","no","cancel"が全て配置されており、表示する必要がないボタンは非表示になっているだけす。






dlg.defaultButtonで指定する数値一覧
ok→0
yes→1
no→2
cancel→3
densanさんの場合は、0をセットすれば大丈夫です。

densan@tenrikyo.or.jp
20 Mar 2009, 5:00 PM
回答ありがとうござおます

こちらでやりたかったのは,フォームがあってTextFieldが2つとボタンがあり
(ようするにログインフォームです ID,パスワード,ログインボタンのフォーム)
Enterでフィールド間を移動させたかったのです
そこでshortcut.jsを使って実現していたのですが,パスワードのチェック等でエラー時に
EXT.msg.showをしていたところ,OKボタンにフォーカスがいかなかったのです
shortcut.jsを使わなければExt.msg.showすればOKボタンにフォーカスはきちんと行きます

そこでExt.msg.showした後,強制的にOKボタンにフォーカスを移動させたかったのです

結局,ID,パスワードにEXTのspecialkeyイベントでe.getkey()===e.ENTERというように
記述してやって,フォーカス移動をするように変更したので,Ext.msg.showでもOKボタンに
フォーカスが移動するようになりました(shortcut.jsは使わない)

せっかく回答していただいて,参考にはなりませんでしたが
今後もよろしくお願いします

amanoman
20 Mar 2009, 5:28 PM
これは、失礼しました。
でも、解決できてよかったですね。