gpt4 book ai didi

javascript - form.on ('submit' ) 不会在 form.submit() 之前触发

转载 作者:行者123 更新时间:2023-11-30 11:04:18 32 4
gpt4 key购买 nike

我有一个表单提交触发器和一个确认引导框,它显示在单击表单提交按钮上。在 bootbox 中确认如果用户同意我提交表单。我的问题是 onsubmit 在用户说是之前触发,并且当我在 bootbox 中调用 form.submit() 时不再触发。

<html>
<form>
<!-- something here -->
<button type="submit"></button>
</form>
</html>
<script>
form.on('submit', function(){
//do something here (I)
}
form.validate({
submitHandler: function (form) {
finalConfirm(form); (II)
}
});
function finalConfirm(form){
confirm('message', function (confirmed) {
if(confirmed) form.submit() (III)
})
}
</script>

我希望 //do something here (I)if(confirmed) form.submit() (III) 之后或至少在之前和之后执行,但是它只在它之前执行(如我在代码中所示)

最佳答案

form 元素(DOM 元素,而非 jQuery 包装器)上直接调用submit 不会触发submit处理程序。验证插件传递你的 submitHandler 的参数是 DOM 元素,而不是它的 jQuery 包装器(根据 this documentation )。

form 元素的 jQuery 包装器上调用 submit 确实触发 submit 处理程序(至少, jQuery 附带的)。因此,如果您希望 finalConfirm 中的 form.submit() 触发您的提交处理程序,请为其创建一个 jQuery 包装器:

$(form).submit();

(在那里,或者在 submitHandler 将其传递给 finalConfirm 之前。)

只要确保您不会陷入无限循环即可。 :-)

关于javascript - form.on ('submit' ) 不会在 form.submit() 之前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56303999/

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