【问题标题】:Javascript prompt() - cancel button to terminate the functionJavascript prompt() - 取消按钮以终止函数
【发布时间】:2012-10-03 14:16:16
【问题描述】:

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

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

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

【问题讨论】:

  • 使用 event.target..它会给你目标元素参考。
  • prompt 在按下取消按钮时返回null

标签: javascript prompt


【解决方案1】:

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;
    }
}

【讨论】:

  • 太棒了!非常感谢您的帮助!你的解释让它看起来如此明显,就像是一记耳光!哈哈。再次感谢。 :)
  • 如果这回答了您的问题,请务必选中它旁边的复选标记以将其标记为答案。
  • 好的 - 我是这个网站的新手,所以我不知道。
  • @JustinWard,如果您还没有,我建议您查看faqEditing Help 也很有用。
【解决方案2】:

您应该明确检查 null 作为返回值(使用三等号)和 return 如果这是结果。

var result = prompt("OK?");
if (result === null) {
    return;
}

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

【讨论】:

  • 太棒了!非常感谢您的帮助!正是我想要的。非常简单,真的。我完全忘记了“null”的返回。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    你能检查一下吗

    if (prompt_responce == null)
    

    判断它是否关闭。

    【讨论】:

      【解决方案5】:

      试试:

      message = prompt("Enter text");
      if(message == "null" || message == null || message == "" );
      

      这对我有用。

      【讨论】:

      • 如果用户真的想提供字符串“null”怎么办?
      • 删除第一个。用户没有理由输入字符串“null”
      猜你喜欢
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 2013-08-08
      • 2012-08-03
      相关资源
      最近更新 更多