Javascript 如何使用自动单击按钮在表单提交ajax上运行函数

Javascript 如何使用自动单击按钮在表单提交ajax上运行函数,javascript,jquery,Javascript,Jquery,我正试图提交一个表格,只是自动点击按钮 所以我有一个计时器,如果计时器已经是0,它应该自动提交表单 这是我的代码 function tick() { var timeDisplay = document.getElementById('question_timer'); var isTimeLimit = true; var min = Math.floor(secondsRemaining / 60); var sec = secondsRemaining -

我正试图提交一个表格,只是自动点击按钮

所以我有一个计时器,如果计时器已经是0,它应该自动提交表单

这是我的代码

function tick() {
    var timeDisplay = document.getElementById('question_timer');
    var isTimeLimit = true;
    var min = Math.floor(secondsRemaining / 60);
    var sec = secondsRemaining - (min * 60);

    if (sec < 10) {
        sec = '0' + sec;
    }

    var message = min.toString() + ':' + sec;
    timeDisplay.innerHTML = message;

    //stop if down to zero
    if (secondsRemaining === 0 && isTimeLimit == true) {
        clearInterval(intervalHandle);
        displayQuestion();
    } else {
        //boolean is false
        if (secondsRemaining === 0) {
            submitAnswer();
            clearInterval(intervalHandle);
        }

    }

    secondsRemaining--;
}

function startCountdown() {

    clearInterval(intervalHandle);

    secondsRemaining = 5;

    intervalHandle = setInterval(tick, 1000);
}

function submitAnswer() {
    $('#form_question_scenario').on('submit', function(e) {
        $.ajax({
            method: "post",
            url: url,
            data: new FormData(this),
            dataType: "json",
            contentType: false,
            cache: false,
            processData: false,
            success: function(data) {

            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('Error adding / update data');
            }
        });
    });
}
函数tick(){
var timeDisplay=document.getElementById('question_timer');
var isTimeLimit=true;
最小值=数学楼层(第二次维护/60);
var sec=第二次维护-(最小*60);
如果(第10节){
秒='0'+秒;
}
var message=min.toString()+':'+秒;
timeDisplay.innerHTML=消息;
//如果降到零,停止
if(secondsRemaining==0&&isTimeLimit==true){
clearInterval(间隔句柄);
显示问题();
}否则{
//布尔值为false
如果(第二次维护===0){
submitAnswer();
clearInterval(间隔句柄);
}
}
第二,保留--;
}
函数startCountdown(){
clearInterval(间隔句柄);
二次维护=5;
intervalHandle=setInterval(刻度,1000);
}
函数submitAnswer(){
$('form#question_scenario')。关于('submit',函数(e){
$.ajax({
方法:“张贴”,
url:url,
数据:新表单数据(本),
数据类型:“json”,
contentType:false,
cache:false,
processData:false,
成功:功能(数据){
},
错误:函数(jqXHR、textStatus、errorshown){
警报(“添加/更新数据时出错”);
}
});
});
}
如果计时器已为0,如何运行submitAnswer函数。非常感谢您的帮助。

submitAnswer()函数只是附加了事件处理程序,实际上并没有提交表单

要实现所需的功能,请在页面加载时附加
submit
事件处理程序,然后在希望提交表单时在其上触发该事件。试试这个:

//加载页面时附加提交事件处理程序
$('form#question_scenario')。关于('submit',函数(e){
$.ajax({
//这里是ajax设置。。。
});
});
函数tick(){
var timeDisplay=document.getElementById('question_timer');
var isTimeLimit=true;
最小值=数学楼层(第二次维护/60);
var sec=('00'+(secondsRemaining-(min*60)).slice(-2);//注意这里整理了逻辑
var message=min.toString()+':'+秒;
timeDisplay.innerHTML=消息;
//如果降到零,停止
if(secondsRemaining==0&&isTimeLimit==true){
clearInterval(间隔句柄);
显示问题();
}否则{
如果(第二次维护===0){
$(“#表单_问题_场景”).trigger('submit');//在此处提交表单
clearInterval(间隔句柄);
}
}
第二,保留--;
}
函数startCountdown(){
clearInterval(间隔句柄);
二次维护=5;
intervalHandle=setInterval(刻度,1000);
}
函数
submitAnswer()
只附加事件处理程序,实际上并不提交表单

要实现所需的功能,请在页面加载时附加
submit
事件处理程序,然后在希望提交表单时在其上触发该事件。试试这个:

//加载页面时附加提交事件处理程序
$('form#question_scenario')。关于('submit',函数(e){
$.ajax({
//这里是ajax设置。。。
});
});
函数tick(){
var timeDisplay=document.getElementById('question_timer');
var isTimeLimit=true;
最小值=数学楼层(第二次维护/60);
var sec=('00'+(secondsRemaining-(min*60)).slice(-2);//注意这里整理了逻辑
var message=min.toString()+':'+秒;
timeDisplay.innerHTML=消息;
//如果降到零,停止
if(secondsRemaining==0&&isTimeLimit==true){
clearInterval(间隔句柄);
显示问题();
}否则{
如果(第二次维护===0){
$(“#表单_问题_场景”).trigger('submit');//在此处提交表单
clearInterval(间隔句柄);
}
}
第二,保留--;
}
函数startCountdown(){
clearInterval(间隔句柄);
二次维护=5;
intervalHandle=setInterval(刻度,1000);
}

您根本不需要提交事件,只需像0秒后那样调用函数,获取表单id并创建新表单数据,然后执行Ajax请求

function submitAnswer() {
let myForm = document.getElementById('form_question_scenario');
        $.ajax({
            method: "post",
            url: url,
            data: new FormData(myForm),
            dataType: "json",
            contentType: false,
            cache: false,
            processData: false,
            success: function(data) {

            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('Error adding / update data');
            }
        });

}
示例:

只需调用函数即可填充表单数据,而无需提交事件:
函数submitAnswer(){
让myForm=document.getElementById('form\u question\u scenario');
let data=新表单数据(myForm)
formObj={};
for(变量对数据.entries()){
formObj[pair[0]]=pair[1]
}
console.log(formObj)
}
submitAnswer()

您根本不需要提交事件,只需像0秒后那样调用函数,获取表单id并创建新表单数据,然后执行Ajax请求

function submitAnswer() {
let myForm = document.getElementById('form_question_scenario');
        $.ajax({
            method: "post",
            url: url,
            data: new FormData(myForm),
            dataType: "json",
            contentType: false,
            cache: false,
            processData: false,
            success: function(data) {

            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('Error adding / update data');
            }
        });

}
示例:

只需调用函数即可填充表单数据,而无需提交事件:
函数submitAnswer(){
让myForm=document.getElementById('form\u question\u scenario');
let data=新表单数据(myForm)
formObj={};
for(变量对数据.entries()){
formObj[pair[0]]=pair[1]
}
console.log(formObj)
}
submitAnswer()


您好,先生,这解决了我的问题。非常感谢,先生。嗨,先生。这解决了我的问题。非常感谢,先生。