HTMLDialogElement:returnValue 属性
**returnValue
** 属性是 HTMLDialogElement
接口的属性,用于获取或设置 <dialog>
的返回值,通常用于指示用户按下哪个按钮关闭对话框。
值
表示对话框 returnValue
的字符串。
示例
以下示例显示了一个按钮,用于使用 showModal()
方法打开包含表单的 <dialog>
。脚本将 returnValue
的初始值设置为 initialValue
。确认按钮 (confirmBtn
) 提交经过验证的表单,而“X”按钮提交未经验证的表单。使用 method="dialog"
提交表单将关闭对话框并将返回值设置为 button
或 input
元素(其 type=submit
)的 value
(如果有)。重置按钮有一个事件处理程序,用于关闭对话框;它不会影响 returnValue
。使用 Esc 键关闭对话框也不会影响 returnValue
。
html
<!-- Simple pop-up dialog box containing a form -->
<dialog id="favDialog">
<form method="dialog">
<input
type="submit"
aria-label="close"
value="X"
name="Xbutton"
formnovalidate />
<p>
<label
>Favorite animal:
<select name="favAnimal" required>
<option></option>
<option>Brine shrimp</option>
<option>Red panda</option>
<option>Spider monkey</option>
</select>
</label>
</p>
<menu>
<button type="reset" value="resetBtn">Reset</button>
<button type="submit" value="confirmBtn">Confirm</button>
</menu>
</form>
</dialog>
<p>
<button id="openDialog">Open Dialog</button>
</p>
<p id="text"></p>
<script>
(() => {
const openDialog = document.getElementById("openDialog");
const dialog = document.getElementById("favDialog");
const text = document.getElementById("text");
const reset = document.querySelector("[type='reset']");
dialog.returnValue = "initialValue";
function openCheck(dialog) {
if (dialog.open) {
text.innerText = "Dialog open";
} else {
text.innerText = "Dialog closed";
}
}
function handleUserInput(returnValue) {
if (!returnValue) {
text.innerText += ". There was no return value";
} else {
text.innerText += ". Return value: " + returnValue;
}
}
// "Open Dialog" button opens the <dialog> modally
openDialog.addEventListener("click", () => {
dialog.showModal();
openCheck(dialog);
handleUserInput(dialog.returnValue);
});
reset.addEventListener("click", () => {
dialog.close();
});
// when the dialog is closed, no matter how it is closed
dialog.addEventListener("close", () => {
openCheck(dialog);
handleUserInput(dialog.returnValue);
});
})();
</script>
<style>
[aria-label="close"] {
appearance: none;
border-radius: 50%;
border: 1px solid;
float: right;
}
</style>
结果
规范
规范 |
---|
HTML 标准 # dom-dialog-returnvalue-dev |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参见
- 实现此接口的 HTML 元素:
<dialog>
.