我正在调用Javascript window.prompt()
并提示用户提交一个我与另一个变量进行比较的变量(一个非常基本的密码保护)。该函数效果很好,但是,如果单击"cancel"
窗口上的prompt()
,该函数不会简单地终止,而是将变量与空字符串进行比较(用户选择不通过该字符串提交)按“取消”代替)导致功能继续到else{ }
部分。
我的问题是,如何在取消时终止该功能?我只需要知道如何定位取消按钮。
通常我只会在按钮的.stop()
上调用click()
,但我不知道如何定位提示窗口的取消按钮。
答案 0 :(得分:72)
OK
(''
未提交任何值), prompt
将返回一个字符串。如果用户按下Cancel
,则会返回null
。您需要做的就是检查值是否为null
:
function doSomething() {
var input;
input = prompt('Do something?');
if (input === null) {
return; //break out of the function early
}
switch (input) {
case 'fun':
doFun();
break;
case 'boring':
beBoring();
break;
}
}
答案 1 :(得分:3)
如果是结果,您应该明确检查null
作为返回值(使用三等号)和return
。
var result = prompt("OK?");
if (result === null) {
return;
}
这使您可以区分空字符串,这是用户点击OK
但未输入内容时返回的字符串。
答案 2 :(得分:2)
处理'提示'的结果的一个实质性问题是Safari(至少版本9.1.2)返回"" "取消"而不是null点击。这意味着:if(result == null)返回;不起作用,你无法区分空字符串的输入和取消。
答案 3 :(得分:1)
你能检查一下
吗?if (prompt_responce == null)
告诉它是否已关闭。
答案 4 :(得分:1)
尝试:
message = prompt("Enter text");
if(message == "null" || message == null || message == "" );
这对我有用。