HTML 语义:没有用于删除项目的输入字段的表单

HTML semantics: form without input fields for deleting an item

如何语义结构HTML删除一个项目?

我知道 HTML 的 <form method="..."> 只允许“POST”和“GET”。但这对我来说并不重要,因为所有表格都是通过 AJAX 提交的。 (顺便说一句,我发现了一些要求“PUT”和“DELETE”形式的旧草稿:http://amundsen.com/examples/put-delete-forms/)。这个问题只是关于 HTML 语义。

在极少数情况下,有些表单使用输入字段,以便让用户确认其删除操作(例如 GitHubs“删除此存储库”)。

但是如果表单不包含任何输入,只有一个提交按钮呢?

奖金问题:如果它是 真实 删除与 删除(a.k.a,会有什么不同吗? “移到垃圾箱”)?

如果您无法使用 HTML <form> 方法并且必须依靠 javascript 将信息发送到服务器,在这种特定情况下,<button>元素本身(没有包装形式元素)是最合适的。按钮不必包装在用于触发操作的表单中。

The HTML <button> element represents a clickable button, used to submit forms or anywhere in a document for accessible, standard button functionality.

Mozilla HTML Elements Reference: Button Element

无论按钮操作是“软”删除还是“硬”删除,都应使用独立按钮,但您应使用文本或其他方法确保用户了解正在执行的操作。

<button class="soft-delete" type="button" data-item="1234">Move to Trash</button>
<button class="hard-delete" type="button" data-item="1234">Delete Forever</button>