我注意到当用户通过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也不会继续执行代码。
他们的一些代码会影响“取消”按钮,以便停止脚本继续吗?谢谢!
我是这个网站的新手所以请原谅我,如果我没有让自己非常清楚:)
答案 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;