如何手动触发提交功能?

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


$(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做到这一点?


慕桂英4014372
浏览 309回答 2
2回答

拉风的咖菲猫

发生错误是因为您在submitFrm未传递事件(e)的情况下进行了调用。submit事件发生时,JavaScript将事件参数传递给函数。如果您手动调用该函数,则没有该事件。您可以做的是使用JQuery获取对表单元素($('#myfrm'))的引用,并在命中时触发Submit事件:function Cancel() {  $('#myfrm').submit();}这样,在表单上触发了提交事件,并submitFrm在输入中调用了该事件的处理程序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript