Javascript window.Prompt()
を呼び出し、ユーザーに別の変数と比較する変数を送信するように促しています(非常に基本的なパスワード保護)。関数はうまく機能しますが、Prompt()
ウィンドウで_"cancel"
_をクリックすると、関数は単純に終了するのではなく、変数を空の文字列と比較します(ユーザーは代わりに「キャンセル」を押して送信)、関数は_else{ }
_の部分に続きます。
私の質問は、キャンセルを押したときに機能を終了するにはどうすればよいですか?キャンセルボタンをターゲットにする方法を知る必要があります。
通常、ボタンの.stop()
でclick()
を呼び出すだけですが、プロンプトウィンドウのキャンセルボタンをターゲットにする方法がわかりません。
Prompt
は、ユーザーがOK
(''
値が送信されていない状態)。ユーザーがCancel
を押した場合、null
が返されます。必要なのは、値がnull
かどうかを確認することだけです。
function doSomething() {
var input;
input = Prompt('Do something?');
if (input === null) {
return; //break out of the function early
}
switch (input) {
case 'fun':
doFun();
break;
case 'boring':
beBoring();
break;
}
}
戻り値としてnull
(トリプルイコールを使用)を明示的にチェックし、これが結果である場合はreturn
をチェックする必要があります。
var result = Prompt("OK?");
if (result === null) {
return;
}
これにより、ユーザーがOK
をクリックしたがコンテンツを入力しなかった場合に返される空の文字列と区別できます。
「プロンプト」の結果を処理する際の重大な問題の1つは、「キャンセル」をクリックすると、Safari(少なくともバージョン9.1.2)がnullではなく「」を返すことです。これは、if(result == null)return;動作せず、ヌル文字列の入力とキャンセルを区別できません。
確認していただけますか
if (Prompt_responce == null)
閉じているかどうかを確認します。
試してください:
message = Prompt("Enter text");
if(message == "null" || message == null || message == "" );
これは私のために働いた。