哪种按钮类型应用于HTML对话框取消按钮



我正在编写html对话框,并带有数据输入字段,其中" cancel"可以单击按钮退出模式对话框。"提交"中的"重置"重置"&quot&quot&quot&quot<input>类型最适合取消按钮,为什么?

研究

<dialog>元素上的MDN页面提供了一个示例,其中<button>(无类型属性(用于取消和确认按钮:https://developer.mozilla.org/en-us/docs/web/web/html/element/对话框#Advanced_example

HTMLDialogElement.showModal()函数上的MDN页面提供了一个类似的示例,其中<button type="reset">用于取消按钮:https://developer.mozilla.org/en-us/docs/web/web/api/htmldialogelement/showmodal/showmodal

我还在网上阅读了周围的阅读,其中包括该网站上的一些答案,其中<input type="button">在推荐示例中使用。

总结我的理解:

  • 省略的类型或type="button"按钮并不意味着按钮将提交有效的表格,也不意味着该表格将明确重置您的数据条目。但是,他们要求您编写更多JavaScript以关闭对话框,与type="submit"不同。标记还没有表明这是关闭对话框形式的方法之一。

  • 带有type="reset"的按钮表示数据条目将被清除,并且需要preventDefault((才能与标记相矛盾。但是,重置不是理想的(https://ux.stackexchange.com/a/42773(,您仍然需要编写JavaScript才能关闭对话框,并且由于使用JavaScript或javaScript关闭的表单,该按钮的功能与标记矛盾您决定防止数据重置。

  • 带有type="submit"的按钮可能是关闭/完成对话框的替代方法,并且在单击提交类型按钮时自动关闭对话框。您只需要JavaScript来收听关闭事件,并检查<dialog>的returnValue属性即可查看是否发生了取消。但是,标记/提交类型可能暗示该表格将以有效的条目而不是取消。

考虑到这一点,如果我的理解是有效的(?(,以及我可能不理会的其他原因(关于哪种标记最可读性,最优雅地使用JavaScript(,应采用哪种方法来取消按钮取消按钮在对话框中?

样本:

<dialog id="forCloseEventListener">
  <form method="dialog">
    <input type="text" name="data-entry" placeholder="Enter your post code">
    <input type="??" value="Cancel">
    <input type="submit" value="OK">
  </form>
</dialog>

p.s。:我注意到有一个实验性的htmldialogelement"取消"事件,但它可能会发生变化,其MDN页面似乎不准确或不完整。

类型type="button"是最佳选择。您可以在onclick事件中编写功能并使用,以根据需要退出模态。

如果使用submitreset,则需要使用event.preventDefault()

最新更新