- PR -

TextChangedとClickイベントの同時発生について

投稿者投稿内容
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2004-02-13 14:41
そもそもの疑問なのですが、「Enterキーで確定」ですよね?
TextBoxの上でのEnterキー押下って「AutoPostBackをTrue」なんかにしなくても
Submitされませんでしたっけ?
GOH
会議室デビュー日: 2004/02/13
投稿数: 8
投稿日時: 2004-02-13 14:54
返信有り難う御座います。

引用:

ゆうじゅんさんの書き込み (2004-02-13 14:16) より:

・別の入力をして発生したTextChangedイベント
保存してあった前回入力値と異なるので重複チェック



ゆうじゅんさんのおっしゃることですと
この場合に同じ値を続けて入力された時って重複チェックしないですよね?

例えば
初期状態から、
1.値『a』を入力→Enter
  入力値≠前回入力値なので重複チェック:OK
  前回入力値に『a』を保存
2.値『a』を入力→Enter
  入力値=前回入力値なので重複チェックを迂回
となってしまい、2回目の『a』がエラーでなくなってしまいます。

どこかでsessionをクリアしておかないとまずいと思うのですが。
(タイミングがかなりシビアな気が。。。)

ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-13 15:14
TextChangedイベントで処理しているのであれば
そもそも1→2でイベント発生しないと思うのですが
(内容が変更されていない)

もし一旦TextBoxの中身を初期化している処理があればそこで
sessionのクリアをすればいいと思います。
GOH
会議室デビュー日: 2004/02/13
投稿数: 8
投稿日時: 2004-02-13 15:47
返信有り難う御座います。

引用:

べるさんの書き込み (2004-02-13 14:41) より:
そもそもの疑問なのですが、「Enterキーで確定」ですよね?
TextBoxの上でのEnterキー押下って「AutoPostBackをTrue」なんかにしなくても
Submitされませんでしたっけ?



EnterキーでSubmitされる場合というのは
htmlの中に<input type="submit">のタグがある場合だけ
だと認識しているのですが、それは間違っているでしょうか?
(しかも<input type="submit">が複数あった場合、
一番上のsubmitが実行されてしまう)

それだと画面の構成上よろしくないので(ボタンが複数あるので)
Scriptでdocument.activeElement.type == 'submit'のときだけ
Enterキーを生かすようにしてあります。

ちなみに
AutoPostBackをFalseにしたらSubmitはされませんでした。
GOH
会議室デビュー日: 2004/02/13
投稿数: 8
投稿日時: 2004-02-13 15:56
引用:

ゆうじゅんさんの書き込み (2004-02-13 15:14) より:
TextChangedイベントで処理しているのであれば
そもそも1→2でイベント発生しないと思うのですが
(内容が変更されていない)



その通りです。なにかと勘違いをしておりました(汗)

これでTextChangedイベントが2回発生した時の対応は
可能だと思います。
(まだ実際に確認は取っていませんが)
有り難う御座いました。

ただ、その他にもいろいろな問題点が出てきていまして。。。

わからない所が出てきたらまた書込みしますので、
その時は、またお相手して頂ければ嬉しいです。
Beatle
ぬし
会議室デビュー日: 2003/06/09
投稿数: 394
投稿日時: 2004-02-13 16:17
引用:

GOHさんの書き込み (2004-02-13 13:57) より:

みなさん、
もしこんな要求仕様が来た時って、どのように実現しますか?
お知恵をお貸しください。




普通特殊なものでない限り、データチェック等はEnterキー、ボタンに問わず、
OnSubmitのイベントで処理しませんか?
Scriptでチェックできる論理チェックならそこで行い、DB等サーバー側で処理が
必要ならそこからキックされるサーバー側モジュールでするとか...

今回の例なら、
>1.TextBoxに値を入力
>2.Enterキーで確定(Scriptでサーバーへポスト)
>3.サーバーサイドで入力値チェック(DBへの存在チェック)
>4.入力値の履歴をクライアントへ返す

2.と3.の間でChangeイベントで処理するのではなく、Submitを発生させたら
いかがでしょうか?(このフィールドに入力しない、または入力されているものを
クリアした時どうするのか?というのは別として)
サーバー側でチェック後OKならば、同じ画面に遷移させるとかで、見た目は同じ
画面に引き続き入力しているように見えるとかで...

でも、最終的に画面全体の入力終了(Submit)でチェックするほうが安全な気が
しますね。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2004-02-13 16:45
引用:
EnterキーでSubmitされる場合というのは
htmlの中に<input type="submit">のタグがある場合だけ
だと認識しているのですが、それは間違っているでしょうか?
(しかも<input type="submit">が複数あった場合、
一番上のsubmitが実行されてしまう)

あ、ごめんなさい。TextBoxが複数あってSubmitボタンがない場合は
Enterキー押下ではSubmitされないですね。

input="text"のonkeydownをひろって押されたキーがEnterキーだったらSubmitなんて
こともできますが、Submitボタンがあるとやはり2重Postしてしまいますしねぇ・・

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