ASP.NET MVC5, создание таймера для викторины с использованием JavaScript
Вот код, который я использую, я не могу понять, почему через 0 секунд форма не будет отправлена на страницу благодарности. Я пытаюсь вызвать кнопку отправки с @using (htmlbeginform())
заявление. Пожалуйста помоги.
<form name="counter">
<input type="text" size="8"
name="d2">
</form>
<script type="text/javascript">
var minutes = 1
var seconds = 00
document.counter.d2.value = '30:00'
function display()
{
if (seconds <= 0)
{
minutes -= 1
seconds += 59
}
if (minutes <= -1)
**{
$(document).ready(function () {
setTimeout(function () { nextQuestion() }, 5000);
$("#questionform").submit(function () {
alert("Submit after 5 second.");
});
});
function nextQuestion() {
$("#questionform").trigger("submit");
}
}** **PART of code in between ** is where I am having trouble, cant figure out what is wrong**
else
seconds -= 1
document.counter.d2.value = minutes + ":" + seconds
setTimeout("display()", 1000)
}
display()
</script>
@using (Html.BeginForm("ThankYou", "Questions", FormMethod.Post, new { @id = "questionform" }))
{
@Html.EditorFor(x => x.Questions)
<input type="submit" id="submit" class="btn btn-default" value="Submit" />
}
ПЫТАЙТЕСЬ ИСПОЛЬЗОВАТЬ ЭТУ КНОПКУ ЗДЕСЬ, ЧТОБЫ ПРЕДСТАВИТЬ НУЛЕВЫЕ СЕКУНДЫ
1 ответ
$(document).ready()
Событие срабатывает только тогда, когда ваш документ полностью загружен, так как вы прикрепляете это событие после загрузки документа, оно никогда не сработает.
Вы должны сделать это следующим образом:
function nextQuestion() {
$("#questionform").trigger("submit");
} //it's better declare your functions outside an if statment
if (minutes <= -1) {
setTimeout(function () { nextQuestion() }, 5000);
$("#questionform").submit(function () {
alert("Submit after 5 second.");
});
/*if you submit,
the page changes and this alert will never appear*/
});
}