开发者社区> 问答> 正文

jQuery中,监听表单提交事件,此时可以不阻止默认行为,直接进行操作吗?希望得到大家的帮助

背景:

页面有多个表单,我需要在提交每个表单的时候,将其对应的id属性存入cookie中。使用1.9.1版本的jQuery,现在我需要监听页面表单的提交事件。
此时能不能这样:

直接监听事件,回调函数为设置cookie的操作。这样是否安全呢?跳转是否先于事件完成呢?中间的过程不是很清晰,希望得到大家的帮助。
或者是必须要取消浏览器的默认跳转,在回调函数的内部末尾通过location.href进行跳转呢?
对于这些有些纠结,很希望得到大家的帮助

展开
收起
a123456678 2016-03-13 18:39:42 2016 0
1 条回答
写回答
取消 提交回答
  • 可以直接写 cookie,你想:阻止默认事件行为也是要写在回调函数里的,如果无法保证先于默认行为执行,怎么能保证阻止成功呢?

    但是回调函数里的异步处理操作是无法保证的,写 cookie 则不在此例。

    顺便一提,如果用户禁用了 cookie 怎么办?(虽然很罕见)我觉得更好的办法是在提交时往 URL 上拼接一个 query params(比如你的 ID),通过监听 location 的变化来处理这件事情。这也是现代 JavaScript 应用程序客户端路由常用的方式。

    又或者表单的提交改为 Ajax 请求,直接禁用默认的提交事件,此时页面是不会刷新的,你可以保证在提交成功之后记录表单 ID,这样会更健壮一些。

    2019-07-17 19:03:00
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载