- - PR -
TextChangedとClickイベントの同時発生について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-13 14:41
そもそもの疑問なのですが、「Enterキーで確定」ですよね?
TextBoxの上でのEnterキー押下って「AutoPostBackをTrue」なんかにしなくても Submitされませんでしたっけ? | ||||
|
投稿日時: 2004-02-13 14:54
返信有り難う御座います。
ゆうじゅんさんのおっしゃることですと この場合に同じ値を続けて入力された時って重複チェックしないですよね? 例えば 初期状態から、 1.値『a』を入力→Enter 入力値≠前回入力値なので重複チェック:OK 前回入力値に『a』を保存 2.値『a』を入力→Enter 入力値=前回入力値なので重複チェックを迂回 となってしまい、2回目の『a』がエラーでなくなってしまいます。 どこかでsessionをクリアしておかないとまずいと思うのですが。 (タイミングがかなりシビアな気が。。。) | ||||
|
投稿日時: 2004-02-13 15:14
TextChangedイベントで処理しているのであれば
そもそも1→2でイベント発生しないと思うのですが (内容が変更されていない) もし一旦TextBoxの中身を初期化している処理があればそこで sessionのクリアをすればいいと思います。 | ||||
|
投稿日時: 2004-02-13 15:47
返信有り難う御座います。
EnterキーでSubmitされる場合というのは htmlの中に<input type="submit">のタグがある場合だけ だと認識しているのですが、それは間違っているでしょうか? (しかも<input type="submit">が複数あった場合、 一番上のsubmitが実行されてしまう) それだと画面の構成上よろしくないので(ボタンが複数あるので) Scriptでdocument.activeElement.type == 'submit'のときだけ Enterキーを生かすようにしてあります。 ちなみに AutoPostBackをFalseにしたらSubmitはされませんでした。 | ||||
|
投稿日時: 2004-02-13 15:56
その通りです。なにかと勘違いをしておりました(汗) これでTextChangedイベントが2回発生した時の対応は 可能だと思います。 (まだ実際に確認は取っていませんが) 有り難う御座いました。 ただ、その他にもいろいろな問題点が出てきていまして。。。 わからない所が出てきたらまた書込みしますので、 その時は、またお相手して頂ければ嬉しいです。 | ||||
|
投稿日時: 2004-02-13 16:17
普通特殊なものでない限り、データチェック等はEnterキー、ボタンに問わず、 OnSubmitのイベントで処理しませんか? Scriptでチェックできる論理チェックならそこで行い、DB等サーバー側で処理が 必要ならそこからキックされるサーバー側モジュールでするとか... 今回の例なら、 >1.TextBoxに値を入力 >2.Enterキーで確定(Scriptでサーバーへポスト) >3.サーバーサイドで入力値チェック(DBへの存在チェック) >4.入力値の履歴をクライアントへ返す 2.と3.の間でChangeイベントで処理するのではなく、Submitを発生させたら いかがでしょうか?(このフィールドに入力しない、または入力されているものを クリアした時どうするのか?というのは別として) サーバー側でチェック後OKならば、同じ画面に遷移させるとかで、見た目は同じ 画面に引き続き入力しているように見えるとかで... でも、最終的に画面全体の入力終了(Submit)でチェックするほうが安全な気が しますね。 | ||||
|
投稿日時: 2004-02-13 16:45
Enterキー押下ではSubmitされないですね。 input="text"のonkeydownをひろって押されたキーがEnterキーだったらSubmitなんて こともできますが、Submitボタンがあるとやはり2重Postしてしまいますしねぇ・・ |