ajax提交form表单数据_[修复]按下回车表单被错误提交

1、问题

在文章列表页按下回车,会跳转到错误页面,如下:

v2-785b10a12dd1f9d6fba1babdba7e4f09_b.jpg

这是一个意料外的状况,感谢 @SummerEnds 发现问题。

2、解决

1)原来的设计只考虑了“开始搜索”的点击——当点击这个按钮时,会触发一段js 函数 start_search(),去收集页面表单上的数据,然后一起以ajax的方式post。

而没有想到回车,竟然也会触发表单自动提交。

v2-32ed24ae4567e041aa5dbfdc56c0aed4_b.jpg

原因是跟前端form有关:

form表单中,如果当前表单只有一个input输入框时,单击回车会自动提交当前表单。

解决办法有很多种,图省事,这里简单加了一行:

<input style="display:none" type="text"> 
https://blog.csdn.net/u011490355/article/details/54347800​blog.csdn.net

2)至此,在搜索页面回车不会触发表单的自动提交,但是看到主流网站都支持“回车搜索”,所以还需要修改。

实现方法也很多,一种是在input里面绑定js事件,另一种是在script里面写js函数去监听特定的事件。

我的<input>标签是由Django将form的每一个Fileld对象自动渲染而来的,想尽量不动已有的代码,所以选择了后面一种:

 87         $('#form1').bind('keydown',function(event){
 88                 if(event.keyCode == "13")    
 89                 {
 90                     start_search();
 91                 }
 92            });

然后就成功修复了!

[后续]

涉及模板的修改在生产环境要生效,需要重启应用。仅仅把代码拉下来,是检测不到的。

暂时先手工重启吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值