[Utah]二択メッセージ(confirm)キャンセル後にonChangeが動作する
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-20-2023 11:55 PM
Workspaceに実装した画面にて下記の操作を行うと⑤の事象が発生します。
事象の原因や対処方法についてご教示いただけないでしょうか。
環境:Utah patch7a
①参照項目「Aコード」にコード値を手入力し、表示された候補を選択する(フォーカスアウト)。
②クライアントスクリプト(onChange)にて二択メッセージ(confirm)を表示。
③二択メッセージでキャンセルを選択する(onChangeの後続処理で変更前のAコードに戻す)。
④二択メッセージが閉じて「Aコード」が元に戻る。
⑤画面上の適当なエリアをクリックすると、同じ二択メッセージが再度表示されてしまう。
※クライアントスクリプト(onChange)内で「Aコード」を更新する(元に戻す)ので、それをトリガにクライアントスクリプト(onChange)が呼ばれるのは対処済み( g_scratchpad.isCanceled で制御)。
※「Aコード」の虫眼鏡をクリック=>子画面でAコードを選択した場合は再現しない。
コード例
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
if (g_scratchpad.isCanceled) {
g_scratchpad.isCanceled = false;
return;
}
if (g_scratchpad.previousValue != newValue {
getMessage('MessageXXXXX', function(msg) {
if (confirm(msg)) {
g_scratchpad.previousValue = newValue;
} else {
g_scratchpad.isCanceled = true;
if (g_scratchpad.previousValue != undefined) {
g_form.setValue('u_code_A', g_scratchpad.previousValue); // Aコード
} else {
g_form.setValue('u_code_A', oldValue); // Aコード
}
}
});
}
0 REPLIES 0