[Seasar-user:4681] Re: S2JSFでEnterを押した場合に特定のボタンを有効にする方法

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2006年 9月 22日 (金) 13:41:48 JST


米林です。

From: "山口 健司" <[E-MAIL ADDRESS DELETED]>
Sent: Friday, September 22, 2006 10:48 AM

> 連続での質問で恐縮です。
> 山口です。
>
> S2JSF(1.0.16)で作成された検索画面でそれぞれのActionに
> 関連付けられている複数のボタンやリンクがあるのですが、
> ボタン上でなく、検索条件を入力するようなテキストボックス上で
> Enterを押された場合、必ず「検索」ボタンを実行したいのですが、
> そのような事はできるのでしょうか?
>
> 簡単な画面イメージを書きます。
> ■何も考慮していない現在の挙動
> ・検索条件のテキストエリアにカーソルがある場合のEnterで
>  A画面遷移ボタンが実行されてしまいます。
> ・JavaScriptでEnterをcatchして全て検索ボタンを実行すると
>  A画面遷移ボタンやマスタ参照画面起動ボタン上でのEnterでも
>  検索が実行されてしまい、他のボタンはマウスでしか実行できなく
>  なってしまいます。
>
> ■やりたい事
> ・検索条件のテキストエリアにカーソルがある場合のEnterは検索実行
> ・A画面遷移ボタンやマスタ参照画面起動ボタン上でのEnterは
>  それぞれの処理を実行
>
>
> ------------------------------------------------
> ヘッダー部
>
> A(Link) B(Link) C(Link)          [A画面遷移](button)
>
> ------------------------------------------------
> ボディー部
>
>   検索条件 : [                ](text) [マスタ参照画面起動](button)
>
>
> [検索](button)
>
> ------------------------------------------------

全てのEnterキーをcatchするのではなく
Enterキーを制御したいテキストボックスにidを振って
該当idのelementにのみEnterキーのイベントを
登録してみてはいかがでしょうか?

ざっくりですが、以下のような感じです
検索条件のテキストにid="hoge"を設定
<input type="text" id="hoge" value="xxx"/>

document.frm.elements['hoge'].onkeydown = function(){alert('検索ボタン実行');};
# form には id="frm" を設定します




Seasar-user メーリングリストの案内