我有一个需要提交的表单,现在出于设计原因,我不得不重新定位这些表单的提交代码,并使用JS实际提交它们。
这已经很好了,没有问题,直到我找到了一个表格,这个表格还有一些不再需要点火的JS ......
我提交的JS如下:
function submitform()
{
document.details.submit();
}
这很有效。然而,这是使用HTML按钮时可以工作的另一部分JS:
$('form').submit(function(){
$('#sortdata').val($( "#sortable" ).sortable("serialize"));
return true;
});
任何帮助/建议都会非常精彩,因为我只是改变了JS中元素的名称。这肯定不可能吗?
答案 0 :(得分:3)
使用jQuery submit方法触发附加jQuery的事件处理程序:
$(document.details).submit(); //shorthand for .trigger('submit')
这将以相同的方式提交表单,但在执行此操作之前还会触发绑定到该元素的submit
事件处理程序。
问题是本机HTMLFormElement.submit()
方法不保证触发与jQuery(或任何事件处理程序)绑定的事件处理程序:
从基于Gecko的应用程序调用此方法时,不会触发表单的
onsubmit
事件处理程序(例如,onsubmit="return false;"
)。通常,不保证HTML用户代理可以调用它。
另一方面,jQuery的.submit()
/ .trigger('submit')
将始终¹执行通过jQuery附加到该元素的事件处理程序。
<小时/> ¹除非先前为特定事件调用
event.stopImmediatePropagation()
,否则这是一个完全不同的主题。