gpt4 book ai didi

jquery - 绕过 .submit() 处理程序

转载 作者:行者123 更新时间:2023-12-01 02:47:50 25 4
gpt4 key购买 nike

我有一个用于表单提交的事件处理程序,需要做一些工作。这项工作包括进行 ajax 调用来执行一些非常具体的验证。由于异步性质,我的目的是在事件处理程序的顶部 preventDefault ,如果一切顺利,则通过触发 submit() 来“手动”提交表单> 方法。

当然,这让我陷入了困境。如果我提交并且一切顺利,那么当我重新提交时将调用提交事件处理程序。当我手动触发提交时,有什么方法可以绕过处理程序吗?

我应该补充一点,今天我的极客业力已经空了,所以我可能会让这件事变得比原本应该的更加困难。如果对于我正在尝试做的事情有一个非常简单的解决方案,我很想听听。

我应该补充一点,我已经通过简单地使 jQuery $.ajax 调用同步来放置了一个工作解决方案,但我不禁觉得有一种更有效的方法来实现这一点完成了我今天没有看到的事情。

谢谢。

最佳答案

不要在表单上放置提交按钮,而是放置一个绑定(bind)为“验证”机制的按钮(正确时) 最终提交。

<罢工>

就向后兼容性而言,添加一个提交按钮,然后使用 jQuery 将按钮替换为您的自定义绑定(bind)按钮之一(因此,如果他们不支持 javascript,他们可以仍继续)。毕竟,对于这些情况/表单的黑客攻击,服务器无论如何都应该进行输入验证。

重新思考后,移动验证逻辑的触发器。绑定(bind)提交按钮的点击事件。这允许您在调用 submit() 之前进行干预。此事件还应该始终返回 false,因为您想要等待 AJAX 响应来真正验证表单是否应提交。

从那里等待 AJAX 响应返回,并在一切正常后调用提交。

就向后兼容性而言,如果出现以下情况,您仍然应该在服务器端保留此验证逻辑:

  1. 没有 JavaScript 支持(也许他们正在使用 NoScript 插件?)
  2. 使用感觉就像规避表单逻辑并开始劫持提交数据。
  3. AJAX 验证可能无法完成的任何其他(无效)有效原因以及问题。

关于jquery - 绕过 .submit() 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208716/

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