【发布时间】:2018-09-28 10:06:19
【问题描述】:
我有一个名为“saveForm()”的 Javascript 函数,我从中将记录保存在数据库中。
我的表单有一个按钮“保存在草稿中”,它将记录保存为草稿模式。在这个按钮上,有onclick事件调用上面的javascript“saveForm()”函数。
现在,我有一个关于自动保存记录的功能,它在表单字段的每个 onblur 事件上调用“saveForm()”函数上方的 javascript。
现在,情况是当我填写其中一个字段并直接单击“保存在草稿中”按钮时,它会将记录多次保存为称为并行的 (onblur 和 onclick) 事件。
点击:
<input type="button" class="btn" id="draftsave" value="Save in draft" onclick="javascript: saveForm(this.form.id, 'draft');" />
模糊:
jQuery(document).delegate(":input[type!='button']", "blur", function() {
saveForm(this.form.id, "draft");
});
【问题讨论】:
-
为什么不离开模糊处理程序并删除点击呢?唯一不会触发的情况是,如果有人直接单击按钮而没有关注其中一个输入,因此您也可以使用
autofocus属性手动关注第一个输入。 -
当每个字段都有模糊保存功能时,你为什么还要点击按钮呢?
-
附带说明,
.delegate已被弃用并且已经有一段时间了,您应该切换到.on并交换前两个参数。 -
你可以拆分逻辑,所以你在数据库中有一些叫做“草稿”的东西,或者类似于保存自动保存值的东西。然后当 saveForm() 被调用时,你可以删除草稿并继续你的表单数据逻辑。
-
@VinodBhavnani :实际上我有一个有 30 多个字段的大表单,所以我们在每个 onblur 事件的后台自动保存,而最终用户不知道。用户将只有有关另存为草稿按钮和最终提交按钮的信息
标签: javascript jquery html