我有一个用户日志表,该表向每个用户操作插入一条记录,但有时会复制插入的记录。
我的代码很简单
<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();">
编辑,我已发布完整代码。该代码可以正常工作,但有时在日志表的行中加倍
这曾经发生在任何人身上吗?有谁知道这可能是什么?
答案 0 :(得分:1)
您可以说两次添加了一个点击监听器。在carregado()
window
事件上调用了一个函数load
,该事件将事件侦听器绑定到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();">
您可以采取的措施是删除对onlick
的{{1}}属性调用,因为只有在完成用salvar()
的页面加载后,绑定逻辑才会绑定事件, ,因此carregado()
部分在这种情况下似乎毫无用处。但是,它将阻止onclick
被调用两次。