我有在表单内的提交按钮上触发的提交功能。这是示例:
$(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/