Javascript提示取消按钮不“取消”

时间:2013-04-04 23:49:35

标签: javascript html prompt

我注意到当用户通过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也不会继续执行代码。

他们的一些代码会影响“取消”按钮,以便停止脚本继续吗?谢谢!

我是这个网站的新手所以请原谅我,如果我没有让自己非常清楚:)

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

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

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

这里你要检查一个空字符串。此外,该eval语句不执行任何操作,您可以在没有它的情况下执行相同的代码:

alert( +x + +y );

答案 2 :(得分:0)

使用命令break;

尝试