0

これが私が使用するコードです。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" />
}

このボタンをここで使用して 0 秒を送信しようとしています

4

1 に答える 1

0

この$(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*/
        });            
    }
于 2014-08-04T09:06:52.170 に答える