我想创建简单的自动提交。例如,如果用户1秒钟未在输入中键入任何内容或按Enter键,则表示已提交。我的代码:
$(document).on('keypress', $('input'), function(e) {
console.log('clear')
clearInterval(SubmitInterval);
if (e.which == 13) {
console.log('submit')
}
var SubmitInterval = setInterval(function() {
console.log('submit')
clearInterval(SubmitInterval);
}, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type=text id=1 />
但是效果很差。
谢谢
最佳答案
问题是由于您在每次按键时重新定义了SubmitInterval
变量。而是在事件处理程序之外声明一次。尝试这个:
var submitInterval;
$(document).on('keypress', 'input', function(e) {
console.log('clear')
clearInterval(submitInterval);
if (e.which == 13) {
console.log('submit')
}
submitInterval = setInterval(function() {
console.log('submit')
clearInterval(submitInterval);
}, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type=text id=1 />