【发布时间】:2018-04-24 18:34:29
【问题描述】:
我正在创建一个触摸屏反馈信息亭,在用户选择反馈选项(好/坏)后提示他们输入他们的电子邮件地址。
留下他们的电子邮件地址是可选的,因此模式窗口应在 x 秒不活动后关闭。
如何检测用户当前是否在模式中处于“活动”状态,如果没有则关闭它(使用 JQuery)?
应该重置倒数计时器,并且在以下情况下模式保持打开状态:
- 用户开始输入。
模态应该关闭如果;
- 输入已处于非活动状态 x 秒(用户离开)。
我已经完成了一半,剩下的只是需要一些帮助。目前定时器只在每次点击输入时改变。
我当前的代码如下;
Here's a link 我的小提琴。
HTML
<button type="button" class="btn btn-primary" id="feedbackFormBad">click</button>
<div aria-hidden="true" class="modal fade" id="memberNumberModal" role="dialog" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header modal-header-primary">
<h1>Hello</h1>
</div>
<div align="center" class="modal-body">
<p>Some text here.</p>
<p span id="countdown"></p>
<!-- show count down timer here -->
<form id="memberNumberForm" class="form-inline">
<div class="form-group mb-2">
<input type="text" name="Email" class="form-control" id="memberNumber" placeholder="enter email" required>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Send</button>
<button type="button" class="btn btn-secondary" id="closeModal" data-dismiss="modal">No Thanks</button>
</div>
</form>
</div>
</div>
</div>
</div>
JQuery
$(document).ready(function() {
$("#feedbackFormBad").on("touchstart, click", function(e) {
$('#memberNumberModal').modal('toggle');
var counter = 5;
var interval = setInterval(function() {
counter--;
$("#memberNumber").focus(function() {
$("#countdown").html('Window will close in ' + counter + ' seconds.');
});
if (counter == 0) {
$('#memberNumberModal').modal('hide');
clearInterval(interval);
}
}, 1000);
});
});
感谢任何帮助。
【问题讨论】:
-
看起来像 stackoverflow.com/a/1009413/3126973 的副本
标签: javascript jquery bootstrap-4 bootstrap-modal