2

ASP.NETとVB.NETで社内イントラネットアプリケーションを作成しています。私の「顧客」は初心者から中級レベルのユーザーです。すべてのブラウザはIE8以降の標準です。

このアプリケーションは、1つを除いて、うまく機能します。バックスペースキー。ユーザーが無効な番号をテキストボックスに入力すると、RegularExpressionValidatorとValidatorCalloutExtenderが起動し、ユーザーに通知します。完全。ただし、ユーザーがポップアップ警告を閉じて、テキストボックスでカーソルがまだ点滅していることに気付いた場合、バックスペースキーを押してその厄介なフィールド値を削除するときが来たと感じます。

残念ながら、ブラウザはこのアクションをページ履歴に「戻る」ことを望んでいると解釈します。上司が叫んでいます。彼の上司は叫んでいます。頭痛がします。

では、どうすればこの動作をオフにできますか?テキストボックス内の文字を削除するためにバックスペースが必要ですが、それ以外は必要ありません。ここでの会社の方針:バックスペースは画面から文字を削除することです。それ以上でもそれ以下でもありません。

何か案は?

ありがとう、

ジェイソン

4

5 に答える 5

1

キャッシュを無効にすることもできますが、パフォーマンスに影響を与える可能性があります。しかし、それを修正するjavascript関数があると思います:

window.history.forward();

このようなカスタム関数でこれをペアリングします

<script type=javascript>

function disableBack() { window.history.forward(); } setTimeout("disableBack()", 0);

</script>

それからあなたの中でそれを呼んでください<body onLoad="disableBack()">

これでうまくいくと思いますが、ずっと前に使っていました。それがうまくいくかどうか私に知らせてください!

于 2011-06-29T20:39:57.043 に答える
0

おそらく、この状況でポップアップを使用しないことは良いアプローチでしょう。

問題は、受け入れ可能なコントロールにフォーカスがなく、フォーカスをコントロールと呼ばれるように強制しないと、ブラウザーが代わりにそれをキャッチすることです。

于 2011-06-29T20:25:37.797 に答える
0

ユーザーがポップアップを閉じるときに、そのonClickイベントを使用してフォームのフォーカスをTextBoxに戻すことができますか?これにより、ユーザーはTextBox値の編集を再開できると思います。

于 2011-06-29T20:28:43.477 に答える
0

私は2つの可能な解決策を見ます:

  1. ページのjavascriptでキープレスをトラップし、バブルが発生しないようにします。
  2. ポップアップ警告を削除し、summurize検証で「display=dynamic」を使用します。
于 2011-06-29T20:30:58.170 に答える
0

テキストボックスでカーソルが点滅している場合は、バックスペースも入力ボックスで処理する必要があり、ドキュメントオブジェクトやウィンドウオブジェクトに伝播されないようにする必要があります。含まれている場合は、この手法をデバッグまたは使用して、ドキュメントレベルでの伝播を停止する必要があります。

于 2011-06-29T20:32:20.003 に答える