2

jQuery Countdownを使用して、ページのタイマー カウント ダウンを作成しました。これは私のコードです:

<script type="text/javascript">

  function timeup() {
    $("examination_form").submit();
  }

  $(document).ready(function() {
    var duration = <%= @remaining_minutes %>
    $('#countDownTimer').countdown({until: '+' + duration  + 'm', 
                    format: 'MS', 
                    description: "Time Remaining",
                    onExpiry: timeup
                      });

  $("#countDownTimer").jScroll({top: 100});

  $("#examination_form").submit(function() {
    var errors = []
    $(".content_question").each(function() {
      var answerCont = $(this).next();
      var inputs = $(answerCont).find('input[type=radio], input[type=checkbox]');

      if(inputs.length > 0)
      {
        var groupChecked = false;

        $(inputs).each(function(){
          if($(this).is(':checked'))
          {
            groupChecked = true;
          }
        });

        if(!groupChecked)
        {
          errors.push($(this).text().trim());
        }
      }
    });

    if(errors.length > 0)
    {
      var errorMessage = "You missed " + errors.length + " questions: \n\n";

      for(var i=0; i<errors.length; i++)
      {
        errorMessage += errors[i] + "\n";
      }
      alert(errorMessage);
      return false;
    }
  });
});
</script>

から最後までのコードは$("#examination_form").submit(function() {、ユーザーがいくつかの質問のチェック回答を逃したかどうかを確認するために使用され、送信を押すとアラートが表示されます。

タイムアウト時にコールバックイベントを使用onExpiryしてフォームを送信しましたが、何もしませんでした。何かが間違っていると思いますが、どこにあるのかわかりませんでした。私が試す前に:

onExpiry: function(){
  $("examination_form").trigger('click');
}

しかし、フォームを送信したいときに送信ボタンを押すのと同じです。この質問で回答を試みましたが、うまくいきませんでした。

誰でも助けることができますか?

4

1 に答える 1

0

フォームの検証をスキップして送信を強制するためにunbindsubmitハンドラーは次のことを行います。

function timeup() {
    $("#examination_form").unbind().submit();
}
于 2012-12-28T18:45:36.853 に答える