Javascript提示取消按钮不是"Canceling"

Javascript Prompt Cancel Button not "Canceling"

本文关键字:quot Canceling 提示 取消 按钮 Javascript      更新时间:2023-09-26

我注意到,当您让用户通过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和Cancel按钮都返回false,并且即使按下OK,代码也不会继续。

是否有一些代码会影响取消按钮,从而阻止脚本继续运行?谢谢!

我对这个网站很陌生,所以如果我没有说清楚的话,请原谅我:)

这里的问题是,您正在使用身份操作符(===)来检查null…Null本身是一个对象,而你的提示结果将是一个字符串…因此,它永远不会是真的……使用相等操作符代替(==)。

您可能还想删除eval语句,而只是警告结果:

alert(" + (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>

prompt返回字符串时,您正在检查null的相等性;这行不通。相反,这应该是您的条件:

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

这里检查的是空字符串。而且,eval语句不做任何事情,您可以不使用它执行相同的代码:

alert( +x + +y );

试试break;