Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery表单在超时时未提交-e[h]不是函数_Javascript_Jquery_Html_Forms - Fatal编程技术网

Javascript jQuery表单在超时时未提交-e[h]不是函数

Javascript jQuery表单在超时时未提交-e[h]不是函数,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,这个问题以前被问过,但没有成功,可能是另一种情况 这是我的表格 <form id="testSubmit" method="post" action="submit.php"> <!--The value of following field will be obtained when user submits test or time runs out --> <input type="hidden" name="user_answer" id

这个问题以前被问过,但没有成功,可能是另一种情况

这是我的表格

<form id="testSubmit" method="post" action="submit.php">
     <!--The value of following field will be obtained when user submits test or time runs out -->
     <input type="hidden" name="user_answer" id="user_answer" value=""/>
     <input type="submit" id="submit" style="padding:5px;" value="Submit"/>
</form>

这是我的Javascript和jQuery代码

<script type="text/javascript">
    $('document').ready(function()
    {
   //pick up the options selected by the student and populate #userAnswer
        $('#testSubmit').submit(function()
        {
            var string='';
            $('.question').each(function () 
            {
                string += $(this).find('input[type="radio"]:checked').length ? $(this).find('input:checked').val() : 'z';
            });
            $('#user_answer').val(string);
        });

//timer for countdown and to submit the form
        var delay=5;
        function countdown()
        {
            setTimeout(countdown,1000);
            $('#timer').html("Time"+delay);
            delay--;
            if(delay<0)
            {
                $("#testSubmit").submit();
                delay=0;

            }
        }
    countdown();
    });
    </script>

$('document').ready(函数()
{
//选择学生选择的选项并填充#userAnswer
$('#testSubmit').submit(函数()
{
var字符串=“”;
$('.question')。每个(函数()
{
string+=$(this.find('input[type=“radio”]:checked')。长度?$(this.find('input:checked')。val():'z';
});
$('#user_answer').val(字符串);
});
//倒计时和提交表格的计时器
var延迟=5;
函数倒计时()
{
设置超时(倒计时,1000);
$('#timer').html(“Time”+delay);
延迟--;
如果(延迟“但这不会提交并给出错误e[h]不是一个函数;”

将id=“submit”更改为其他内容。原因是,如果您有一个id为submit的输入元素,它将为带有HTMLInputElement的表单设置一个submit属性。因此,您无法在HTMLFormElement上调用.submit方法。

“但这不会提交,并给出错误e[h]不是函数;”


将id=“submit”更改为其他内容。原因是,如果您有一个id为submit的输入元素,它将为带有HTMLInputElement的表单设置一个submit属性。因此您无法在HTMLFormElement上调用.submit方法。

您应该将submit按钮id更改为“submit”以外的内容。例如“submitButton”


此更改还应防止不必要的JS代码执行:

function countdown() {
        if (delay < 0) {
            $("#testSubmit").submit();
            delay = 0;
        } else {
            setTimeout(countdown, 1000);
            $('#timer').html("Time " + delay);
            delay--;
        }
    }
函数倒计时(){
如果(延迟<0){
$(“#testSubmit”).submit();
延迟=0;
}否则{
设置超时(倒计时,1000);
$('#timer').html(“Time”+delay);
延迟--;
}
}

您应该将提交按钮id更改为“提交”以外的其他内容。例如“提交按钮”


此更改还应防止不必要的JS代码执行:

function countdown() {
        if (delay < 0) {
            $("#testSubmit").submit();
            delay = 0;
        } else {
            setTimeout(countdown, 1000);
            $('#timer').html("Time " + delay);
            delay--;
        }
    }
函数倒计时(){
如果(延迟<0){
$(“#testSubmit”).submit();
延迟=0;
}否则{
设置超时(倒计时,1000);
$('#timer').html(“Time”+delay);
延迟--;
}
}

尝试在$('document')之外声明delay变量。准备好了吗,可能没有将其作为全局变量。您是否尝试拉出setTimeOut?只是为了测试(尝试在函数之外声明设置的超时,或者执行:if var timeout==false{timeout=setTimeOut…}?@sagits:I发出
警报('Hello'))
在那里,它工作正常。因此计时器工作正常。问题是一旦时间为零,错误就会出现。当您执行document.getElementById(“#testSubmit”).submit()时,请删除#尝试在$(“document”之外声明延迟变量).ready,可能不是作为全局变量获取的。您是否尝试拉出setTimeOut?只是为了测试(尝试在函数外部声明您的设置超时,或者执行:if var timeout==false{timeout=setTimeOut…}?@sagits:I发出
警报('Hello'))
在那里,它工作正常。因此计时器工作正常。问题是,一旦时间为零,错误就会出现。当你在做document.getElementById(“#testSubmit”).submit()时,请删除#@A Paul:你知道吗?它工作正常!!!谢谢你提供了这么好的信息。下次会小心的,我又迟到了一秒。回答不错;)+1+1,向你们两人解释这个问题并纠正其他可能的循环问题。@APaul:有一个小问题。现在表单直接提交,而不填充
#user_-answer
。因此,当我
var_dump($_POST['user_-answer'])
在下一页上时,我会得到一个空字符串移动你的“$('#testSubmit')。提交(function()”在一个普通函数中编写代码,然后调用它而不是$(“#testSubmit”)。submit();@a Paul:你知道吗?它成功了!!!谢谢你提供的这些好信息。下次我会小心的。我又迟到了一秒。回答不错;)+1+1感谢你们两位解释这个问题并纠正其他可能的循环问题。:)@APaul:有一个小问题。现在表单直接提交而不填充
#user_answer
。因此,当我
var_dump($#POST['user_answer'])
在嵌套页面上,我得到一个空字符串移动你的“$”('#testSubmit')。在一个公共函数中提交(function()”代码,然后调用它而不是$(“#testSubmit”)。submit();:有一个小问题。现在表单直接提交而不填充#user_answer。因此,当我在下一页上var_dump($_POST['user_answer'])时,我得到一个空字符串抱歉,但这是另一个问题。有一个小问题。现在表单直接提交而不填充#user_answer。所以当我var_dump($_POST['user_answer'])时在下一页我得到一个空字符串抱歉,但那是另一个问题。