Javascript 当用户单击表单以外的任何位置时,清除表单字段

Javascript 当用户单击表单以外的任何位置时,清除表单字段,javascript,jquery,Javascript,Jquery,我创建了一个表单I wan,当用户单击表单之外的任何位置时,可以清除所有字段。当用户在表单外单击时,是否可以重置字段?如何操作。您可以使用.reset()和事件。当前目标在中单击事件处理程序设置在文档中 document.onclick = e => { if (e.currentTarget !== document.forms[0]) document.forms[0].reset() } 使用jquery,您可以: 处理文档单击 获得点击的目标 如果目标不是表单,则触

我创建了一个表单I wan,当用户单击表单之外的任何位置时,可以清除所有字段。当用户在表单外单击时,是否可以重置字段?如何操作。

您可以使用
.reset()
事件。当前目标
中单击
事件处理程序设置在
文档中

document.onclick = e => {
  if (e.currentTarget !== document.forms[0])
    document.forms[0].reset()
}

使用jquery,您可以:

  • 处理文档单击
  • 获得点击的目标
  • 如果目标不是表单,则触发表单的重置事件
触发重置事件比逐个重置所有元素更有效。此触发事件将重置所有表单元素,如文本输入、文本区域、复选框、单选按钮

$(document).click(function (e) {
    var target = e.target;
    if (!$(target).is('#formID') && !$(target).parents().is('#formID')) {
        $('#formID').trigger("reset");
    }
});
这很有效

$(“html,正文”)。单击(函数(e){
变量形式=$(“#形式一”);
如果(例如,目标!==表格[0])
{
表单[0]。重置();
}
})
#formdiv
{
身高:100%
宽度:100%;
背景:红色;
保证金:0;
}
#formone
{
高度:100px;
宽度:200px;
背景:黄色;
填充:10px;
}

姓名:
这里有javascript代码, 小提琴:

html


请提供一些html来澄清您的问题?
<div id="wrapper">
  <form action="" id="sanzform">
    <input type="text" />
    <input type="text" />
  </form>
</div>
var body = document.getElementById('wrapper');
var sanzform = document.getElementById('sanzform');
body.addEventListener("click", function () {
alert("reset");sanzform.reset();}, false);

sanzform.addEventListener("click", function (ev) {ev.stopPropagation();}, false);