私は Cognos を使用してenterおり、プロンプトが送信される前にユーザーの入力がチェックされるように、キーをキャッチしようとしています。
Cognos の経験がなくても、私のコードを見ていただければ幸いです :) ビジネス レポート用のドラッグ アンド ドロップ プログラムです。
Cognos プロンプト ページにテキスト ボックス プロンプトがあり、ユーザー入力に最小 3 文字を設定しようとしています。以下に示すように、HTML アイテムを使用してテキスト ボックス プロンプトを div で囲みました。
<div onKeyDown="return keyMon(event)"> Cognos Text Box </div>
keyMon()
以下に示すように、関数を含む別の HTML アイテムがあります。
<script>
function keyMon(e3)
{
var key = e3 || window.event;
if(key.keyCode == 13){
var fW = (typeof getFormWarpRequest == "function" ?
getFormWarpRequest() : document.forms["formWarpRequest"]);
if ( !fW || fW == undefined) {
fW = ( formWarpRequest_THIS_ ?
formWarpRequest_THIS_ : formWarpRequest_NS_ );
}
var custValue = fW._textEditBoxCustomerPrompt;
if(custValue.value.length > 0){
if(custValue.value.length >= 3){
promptAction('next'); //Submit the user's input
}else{
alert("Please enter a search value that is 3 or more characters long.");
return false;
}
}
}
}
</script>
上で述べたように、これは IE で問題なく動作します。Firefox で実行すると、Enter キーを押すとアラート ボックスが表示されますが、1 ミリ秒しか表示されずに消えます。しかし、それでも次のページに進みます。したがって、明らかに「return false;」あまりやっていません。
どんな助けでも大歓迎です。