gpt4 book ai didi

javascript - JS 提交与 HTML 提交不一样

转载 作者:行者123 更新时间:2023-11-30 13:01:40 26 4
gpt4 key购买 nike

我有一个需要提交的表单,现在出于设计原因,我不得不重新定位提交这些表单的代码并使用 JS 实际提交它们。

这一直工作得很好,没有问题,直到我找到一个表单,该表单也可以做一些不再触发的 JS...

我的提交JS如下:

function submitform()
{
document.details.submit();
}

这很好用。然而,这是另一个在使用 HTML 按钮时起作用的 JS:

$('form').submit(function(){
$('#sortdata').val($( "#sortable" ).sortable("serialize"));
return true;
});

任何帮助/建议都会很棒,因为我只是绕着圈子改变 JS 中的元素名称。这肯定是可能的,不是吗?

最佳答案

使用 jQuery 提交方法触发 jQuery 附加的事件处理程序:

$(document.details).submit(); //shorthand for .trigger('submit')

Demo

这将以相同的方式提交表单,但也会触发 submit 事件处理程序,在此之前使用 jQuery 绑定(bind)到该元素。


问题是原生 HTMLFormElement.submit()方法不保证触发与 jQuery 绑定(bind)的事件处理程序(或任何事件处理程序):

The form's onsubmit event handler (for example, onsubmit="return false;") will not be triggered when invoking this method from Gecko-based applications. In general, it is not guaranteed to be invoked by HTML user agents.

另一方面,jQuery 的 .submit()/.trigger('submit') 将始终¹ 执行通过 jQuery 附加到该元素的事件处理程序。


¹ 除非先前为给定事件调用了 event.stopImmediatePropagation(),但这是一个完全不同的主题。

关于javascript - JS 提交与 HTML 提交不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com