Sqlite html5插入时重复记录

时间:2018-09-10 15:20:12

标签: javascript html5 sqlite phonegap

我有一个用户日志表,该表向每个用户操作插入一条记录,但有时会复制插入的记录。

我的代码很简单

<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();">

编辑,我已发布完整代码。该代码可以正常工作,但有时在日志表的行中加倍

这曾经发生在任何人身上吗?有谁知道这可能是什么?

1 个答案:

答案 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被调用两次。