javascript - 如何手动触发提交功能?

标签 javascript jquery eventtrigger

我有在表单内的提交按钮上触发的提交功能。这是示例:

$(document.body).on('submit', '#myfrm', submitFrm);
    function submitFrm(e){
        e.preventDefault();
        var frmData = $(this).serialize();

        $.ajax({
            type: 'POST',
            url: 'ajax/form_data.cfm',
            data: frmData
        }).done(function(data){
            //data saved
        }).fail(function(jqXHR, textStatus, errorThrown){
            alert('Error: '+errorThrown);
        });
    }
}

现在我想从另一个函数触发 submitFrm() 函数,如下所示:

function Cancel() {
   submitFrm();
}

这将引发 e 不存在的错误。我想提交需要手动触发。有没有办法用 JQuery 做到这一点?

最佳答案

发生错误的原因是您在调用 submitFrm 时未传递事件 (e)。当 submit 事件发生时,事件参数由 JavaScript 传递给函数。如果您手动调用该函数,则不会有该事件。

您可以做的是使用 JQuery 获取对表单元素的引用 ($('#myfrm')) 并在点击时触发提交事件:

function Cancel() {
  $('#myfrm').submit();
}

通过这种方式,表单上会触发提交事件,并使用输入中的事件调用 submitFrm 处理程序。

关于javascript - 如何手动触发提交功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55575654/

相关文章:

javascript - 如何将日期从单词格式化为数字?前任。 2004 年 11 月 4 日至 11/04/2004 使用 JQuery?

javascript - 使用触发器选择所有复选框 - jquery

excel - 当单元格更改时如何运行一些 VBA 代码?

javascript - 从 getJSON 添加到数据

JavaScript - 数字是否有序 Kata

jquery - 取消选择选定的树节点 JStree - jQuery

javascript - 将带有隐藏样式属性行的动态表列复制到 textarea jQuery

wpf - 触发 Button.Click 时的 XAML Binding.UpdateSourceTrigger?

javascript - 循环对象时 array.filter 未定义

javascript - 尝试更改成功函数内 $(this) 的属性