Window: prompt() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

window.prompt() 指示浏览器显示一个带有可选消息的对话框,提示用户输入一些文本,并等待用户提交文本或取消对话框。

在某些情况下(例如,当用户切换标签页时),浏览器可能不会显示对话框,或者可能不会等待用户提交文本或取消对话框。

语法

js
prompt()
prompt(message)
prompt(message, defaultValue)

参数

message 可选

要显示给用户的文本字符串。如果提示窗口中没有内容显示,则可以省略。

defaultValue 可选

包含在文本输入字段中显示的默认值的字符串。

返回值

包含用户输入的文本,或 null 的字符串。

示例

使用带有消息和默认值的 prompt

以下示例显示了如何检查 prompt 的返回值。当用户单击“确定”按钮时,将返回输入字段中输入的文本。如果用户在不输入任何文本的情况下单击“确定”,则返回一个空字符串。如果用户单击“取消”按钮,此函数将返回 null

html
<button id="signButton">Check star sign</button>
<pre id="log"></pre>
js
const signButton = document.querySelector("#signButton");
const log = document.querySelector("#log");

signButton.addEventListener("click", () => {
  let sign = prompt("What's your sign?");

  if (sign === null) {
    log.innerText = "OK, maybe next time.";
  } else if (sign.toLowerCase() === "") {
    log.innerText = "Don't be shy, enter your sign!";
  } else if (sign.toLowerCase() === "scorpio") {
    log.innerText = "Wow! I'm a Scorpio too!";
  } else {
    log.innerText = `${sign} is my favorite!`;
  }
});

Prompt 消息和默认值

有多种使用 prompt 的方法,包括使用 promptwindow.prompt,以及提供消息和默认值。

js
// open a blank prompt window
sign = prompt();
// open a blank prompt window
sign = window.prompt();
// open a prompt with the text "Are you feeling lucky"
sign = window.prompt("Are you feeling lucky");
// open a prompt with the text "Are you feeling lucky" and "sure" as the default value
sign = prompt("Are you feeling lucky", "sure");

注意

对话框是模态窗口——它们会阻止用户访问程序界面的其余部分,直到对话框关闭。因此,您不应过度使用任何创建对话框或模态窗口的函数。或者,可以使用 <dialog> 元素进行确认。

prompt 对话框包含一个单行文本框、一个“取消”按钮和一个“确定”按钮,并返回用户在该文本框中输入的(可能为空的)文本。结果是一个字符串,这意味着您有时应该转换用户提供的值。例如,如果他们的答案应该是数字,则应将值转换为 Number。

js
const number = Number(window.prompt("Type a number", ""));

规范

规范
HTML
# dom-prompt-dev

浏览器兼容性

另见