Javascript prompt() - 取消按钮终止该功能

Jus*_*ard 32 javascript prompt

我正在调用Javascript window.prompt()并提示用户提交一个变量,我将其与另一个变量(一个非常基本的密码保护)进行比较.该函数的伟大工程,但是,如果你点击"cancel"了上prompt()窗,功能不是简单地终止,而是变量比较空字符串,(用户选择不按提交"取消",而不是)导致功能继续到该else{ }部分.

我的问题是,如何在取消时终止该功能?我只需要知道如何定位取消按钮.

通常我只想叫.stop()click()一个按钮,但我不知道如何定位的提示窗口的取消按钮.

zzz*_*Bov 75

prompt如果用户按下OK(''没有提交值),则返回一个字符串.如果用户按下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;
    }
}
Run Code Online (Sandbox Code Playgroud)


Way*_*ett 8

您应该明确检查null返回值(使用三等号)以及return何时这是结果。

var result = prompt("OK?");
if (result === null) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

这使您可以区分空字符串,空字符串是用户单击OK但未输入任何内容时返回的内容。


小智 5

处理“提示”结果的一个重大问题是,当单击“取消”时,Safari(至少版本 9.1.2)返回“”而不是 null。这意味着: if(result==null) return; 不起作用,并且您无法区分空字符串的输入和取消。