【发布时间】:2014-02-21 21:53:41
【问题描述】:
我有一个 id="edit_profile" 的普通表单。
当表单提交时,我想拦截它并检查我是否需要通过 google maps api 对地址进行地理编码,如果不需要,则继续提交。
类似:
$('#edit_profile').on('submit', function(event) {
event.preventDefault();
if ( some test ) {
geocode_address( address, this ); // the api callback will handle form submit
} else {
// we want to go ahead and submit the form
this.submit();
}
});
问题是this.submit()正在抛出错误TypeError: Property 'submit' of object #<HTMLFormElement> is not a function
我最近读了一些东西,但现在找不到关于必须使用原生 JavaScript 来提交表单而不是 jQuery(我猜是因为表单提交的 jQuery 事件处理程序已经被告知要防止默认)。
但如果我尝试一些变体,例如 document.getElementById('edit_profile').submit(); 或 document.forms[0].submit();,我会得到相同的错误或类似的错误。
【问题讨论】:
标签: javascript jquery forms form-submit preventdefault