あなたは本当にあなたが誰もハックしないことを確実にしたい場合は、クライアント・サーバ往復(例えばを使用して各キーイベントにご入力テキストコントロールの値の長さを計算する必要がある場合あなたのクライアント側JS)、そしてあなたがforementioned XSnippetを使用して、スタンバイダイアログがすべてのキーを押して上に表示したくないと仮定すると、ここにあなたが一般的に何をする必要があるか:
をあなたがを行うときでは、最後の関数パラメータとしてoptions
オブジェクトを渡すことができます。ただ、(あなたはすでにそれに何かを入れている場合)このオブジェクトに1つのより多くのプロパティを追加したり、単一のプロパティを持つ新しいオブジェクトを作成し、それがこのoptions
オブジェクトはずっと受け継がれ
XSP.partialRefreshPost('#{id:yourId}', {dontShowDialog: true})
- のようなものでなければなりません行番号39、
partialrefresh-start
イベントが公開され、そのオブジェクトが最後の要素として公開されます。
行#137は、このイベントをサブスクライブします。ちょっとあなたのoptions
に基づいて条件文でダイアログを作成する2次の行を折り返す今あなたは、関数の体内でのごoptions
を読み取ることができます
dojo.subscribe('partialrefresh-start', null, function(method, form, refreshId, options)
のように、それが宣言する関数に1つの以上のパラメータを追加します。パラメータ。全体のものは次のようになります。
dojo.subscribe('partialrefresh-start', null, function(method, form, refreshId, options) {
if (options) {
if (options.dontShowDialog) return;
}
StandbyDialog_Do = true;
StandbyDialog_Started();
});
すべてのあなたは、クライアント側のイベントハンドラ(false
に設定submit
性質を持つものを使用する場合場合である上に書いたあなたは、サーバー側のハンドラを使用している場合。 。_partialRefresh
方法、CSJSを呼び出す前に
- :あなたが最後に呼び出され
_partialRefresh
方法に任意の追加のカスタムプロパティを渡すことはできませんので、物事は、少し複雑になっているしかし、私はこれを処理するための一つの方法を考えることができますエンジンがいくつか作るそのうちの1つは、ページ上のいくつかの非表示の入力フィールドに特定の値を設定しています。ここではハイジャッカーXSnippetの$$xspsubmitid' field, which is given the value of your declared event handler client id. Then you can read the value of
$$ xxpsubmitid`フィールドに興味があり、イベントハンドラのIDが含まれている場合 - スタンバイダイアログを表示しません。この方法ははるかに柔軟ではありませんが、動作するはずです
P.S.上記のすべてを自分で試したことはありませんが、試して失敗するつもりなら、調査して修正してうれしいです。
x文字以上入力できないクライアントサイドスクリプトを追加します。ユーザーへのメッセージやリロードは必要ありません。最大文字に達すると入力を防ぐだけです。 –