- PR -

フォーカス移動の優先順位

1
投稿者投稿内容
花茶
会議室デビュー日: 2006/10/11
投稿数: 12
投稿日時: 2007-01-31 14:49
こんにちは。ASP.NET 2.0 (VB.NET)で開発を行ってます。

txtAとtxtBという2つの続けて配置したテキストボックス(TABINDEXも連続しています)があって
両方とも、JavaScriptのonBlurイベントにてロストフォーカスした時に数字チェックを行っています。
数字チェックがOKなら2つの合計を出力する為、加算を行うのですが
その前にロストフォーカスしなかったテキストボックス(txtAでロストフォーカスしたらならtxtB)
の数字チェックを行っています。

一回目の数字チェックNGの時は...

@txtAに数字以外を入力後ロストフォーカス
 ↓
Aalertでエラーメッセージ表示
 ↓
BtxtAにフォーカスを戻す。
 ↓
C処理終了

としたいのですが、AとBの処理の間?にtxtBにフォーカスが移ってしまい
以下のような状況になっています。

@txtAに数字以外を入力後ロストフォーカス
 ↓
Aalertでエラーメッセージ表示
 ↓
BtxtBにフォーカスが移動??
 ~~~~~~~~~~~~~~~
 ↓
CtxtAにフォーカスを戻す。
 ↓
DtxtBのロストフォーカスが発生
 ↓
EtxtBは未入力なので一回目の数字チェックOK
 ↓
E合計値の計算の為txtAの数値チェックを再度行い
 結果エラーの為、alertでエラーメッセージ表示
 ↓
F処理終了

となってしまいます。
Bのフォーカスが移動するのはコントロールのTabIndexが働いているからなんでしょうか?
それを抑制し、txtBにフォーカスが移動するのを防ぐ方法などはあるのでしょうか?
ご存知の方ご教授ください。よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-31 15:41
Web では入力チェックというのは最後 (Submit) にやるものです。
Web アクセシビリティについて調べてみてください。

# alert でエラーを表示していない場合は、自然な動きですが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
花茶
会議室デビュー日: 2006/10/11
投稿数: 12
投稿日時: 2007-01-31 15:51
じゃんぬねっとさん、返信有難う御座います。

引用:
Web では入力チェックというのは最後 (Submit) にやるものです。
Web アクセシビリティについて調べてみてください。



これは重々承知いたしております
ただ、元々がVBで組まれており
その動きを出来る限り踏襲して欲しいとの要求があったので・・・。
(Web上で一般公開することもありません)

やはり無理があるんでしょうかね;;
もうちょっと別なやり方を提案すべきかなぁ・・・。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-31 16:43
引用:

花茶さんの書き込み (2007-01-31 15:51) より:

もうちょっと別なやり方を提案すべきかなぁ・・・。


alert でエラーが表示されなければ、自然な動きです。
なので、ASP.NET と言えば、やはり Validator でしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)