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 和 Cancel 按钮都返回 false,即使按下 OK,代码也不会继续。

他们的某些代码是否会影响“取消”按钮以阻止脚本继续?谢谢!

我对这个网站很陌生,所以如果我没有让自己非常清楚,请原谅我:)

4

3 回答 3

2

这里的问题是您正在使用身份运算符(===)来检查 null... null 本身就是一个对象,而您的提示结果将是一个字符串...因此,它永远不会是真的。 .. 改用相等运算符 (==)。

您可能还想删除 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 回答