我有一个用户日志表,它向每个用户操作插入一条记录,但有时它会复制插入的记录。
我的代码非常简单
<script>
db.transaction(function(tx) {
tx.executeSql('INSERT INTO tab_log (date_occurrence,hour_occurrence,number_user,occurrence,obs_occurrence) VALUES (?,?,?,?,?)', [var_date, var_hour, var_number_user, var_occurrence, var_obs_occurrence]);
});
</script>
<input type="button" name="btn_finish" id="btn_finish" value="Finish" onclick="this.blur();salvar();">
编辑我有post的完整代码。此代码可以很好地工作,但有时会在日志表的行中重复使用
有没有人遇到过这种情况?有人知道这可能是什么吗?
发布于 2018-09-11 03:16:21
可以这么说,您正在添加一个单击侦听器两次。有一个在window
load
event上调用的函数carregado()
,它将事件侦听器绑定到finish
按钮。
function carregado() {
document.getElementById('btn_finish').addEventListener('click', salvar);
}
但是,在html
端,您设置了该按钮的onclick
属性,使其调用salvar()
两次,因为onclick
和addEventListener('click')
都将不同的侦听器绑定到该按钮。
<input ... id="btn_finish" value="Finish" onclick="this.blur();salvar();">
要解决这个问题,您可以删除对salvar()
的onlick
属性调用,因为它破坏了只有在使用carregado()
加载完页面之后才绑定事件的逻辑,因此onclick
部件在这种情况下似乎没有用。然而,它将防止salvar()
被调用两次。
https://stackoverflow.com/questions/52260957
复制相似问题