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

时间:2012-10-12 17:55:56

标签: javascript jquery html prompt

我正在调用Javascript window.prompt()并提示用户提交一个我与另一个变量进行比较的变量(一个非常基本的密码保护)。该函数效果很好,但是,如果单击"cancel"窗口上的prompt(),该函数不会简单地终止,而是将变量与空字符串进行比较(用户选择不通过该字符串提交)按“取消”代替)导致功能继续到else{ }部分。

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

通常我只会在按钮的.stop()上调用click(),但我不知道如何定位提示窗口的取消按钮。

5 个答案:

答案 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 == "" );

这对我有用。