0

promptユーザーにウィンドウからテキストを入力させると、プロンプトが返さnullれ、コードの処理が続行されることに気付きました。キャンセルボタンに、それが言うことを実行してキャンセルしてもらいたいです。if次のようないくつかのステートメントを試しました。

var x= prompt("Please enter a number for <X>: (<X> + <Y>)");
if (x === null) {
    return;
}
var y= prompt("Please enter a number for <Y>: (<X> + <Y>)");
if (x === null) {
        return;
}   
eval ("x=x; y=y; alert(+x + + y)");
};

上記は何も変わりません

var x= prompt("Please enter a number for <X>: (<X> + <Y>)");
    if (verifyInput(false)) {
        return;
    }
var y= prompt("Please enter a number for <Y>: (<X> + <Y>)");
    if (verifyInput(false)) {
        return;
    }
eval ("x=x; y=y; alert(+x + + y)");
};

そして、これにより、OK ボタンとキャンセル ボタンの両方が false を返し、OK が押されてもコードは続行されません。

スクリプトの続行を停止するように [キャンセル] ボタンに影響を与えるコードはありますか? ありがとう!

私はこのウェブサイトに非常に慣れていないので、自分自身をひどく明確にしていない場合はご容赦ください:)

4

3 に答える 3

2

ここでの問題は、同一性演算子 (===) を使用して null をチェックしていることです... null 自体はオブジェクトですが、プロンプトの結果は文字列になります... したがって、true になることはありません。 .. 代わりに等価演算子 (==) を使用してください。

また、eval ステートメントを削除して、代わりに結果を警告することもできます。

アラート("" + (x + y));

編集:ここで実際の数学的プロセスを実行したいことに気付きました...これは私のために機能するコードです...実際の基本的なHTMLページですが、必要なことを行うのに役立つはずです:

<html>
  <head>
    <title>test</title>
  </head>
  <body onload="Prompter();">
    <script type="text/javascript">
      function Prompter()
      {
      var x = prompt("Please enter a number for <X>: (<X> + <Y>)");
      var y = prompt("Please enter a number for <Y>: (<X> + <Y>)");
      if(x && y)
          alert("" + (parseInt(x) + parseInt(y)));
      }
    </script>
  </body>
</html>
于 2013-04-04T23:54:31.537 に答える
1

文字列を返すnullときに同等性をチェックしています。promptこれはうまくいきません。代わりに、これはあなたの条件であるべきです:

if ( x === "" ) { / ... / }

ここでは、空の文字列をチェックしています。さらに、その eval ステートメントは何もしません。それなしで同じコードを実行できます。

alert( +x + +y );
于 2013-04-04T23:58:22.047 に答える
0

コマンドで試してみてくださいbreak;

于 2013-04-05T00:00:07.107 に答える