我有一个下拉菜单,它基本上通过onchange将一些数据发送回服务器。数据使用秒存储在数据库和主表中以避免重复。如果我通过键盘滚动下拉列表会发生什么,例如,使用向上/向下键,我的脚本会返回错误,因为数据库中现在有一个重复的条目。
这是html
中下拉列表的部分代码onchange="GetmySQLData();"
我的问题是我可以做一个setTimeout,以这种格式使用它是否正确:
onchange="setTimeout('GetmySQLData();', 1750);"
如果您有更好的方法,请随时告诉我。
由于
答案 0 :(得分:2)
以下版本可互换:
setTimeout('myFunction()',1750);
setTimeout(myFunction,1750)
setTimeout(function() { /* some anonymous function */ },1750)
你可能想要的是
<script>
var tId = ""; // create a global var
</script>
并且有
onchange="clearTimeout(tId); tId=setTimeout('GetmySQLData()',1750)"
只会在用户未在超时期间更改下拉列表后执行onchange,但如果用户在超时期限内更改,则会触发新的超时
答案 1 :(得分:-1)
如果您打算使用setTimeOut,则必须按以下方式调用:
onchange =“setTimeout(GetmySQLData(),1750);”通过参数提供单引号使其被视为字符串。超时值以毫秒为单位。