记一个前端小bug——ajax执行完后页面被刷新

一、问题描述

博主是前端菜鸟,今天写ajax的时候遇到了一个bug,折腾了好久,网上找了一圈最后发现是个小问题导致的。。。不怕丢人把代码放上。

$("#submit1").click(function(){
    var username = $("#username").val();
    var data = {
        "username": username,
    };

    $.ajax({
        url: '/',
        type: 'POST',
        dataType: 'json',
        data: data,
        timeout: 0,
        success:function(ret){
           console.log(ret['result']);
        },
        error:function(ret){
            console.log('failed');
        }
    });
})

<form>
    <textarea id="username" name="username"></textarea>
    <button id="submit1"> 提交 </button>
</form>

描述一下这个bug:我用ajax来Post数据到后端,然后后端返回结果到前端。但每次提交完页面都被刷新,导致我看不到后端发过来的结果,啊真是气死个人。可能你们前端大佬一眼就看出问题了,我懵逼了一个多小时。。。

 

二、问题解决

我特地为了避免在ajax后完成后,表单又重新提交一遍的情况,所以避开使用submit按钮。因此首先表单被提交这个原因被排除了,那还会是什么原因呢?

难道ajax完成后,页面会被刷新?网上查了一下资料,结果是并不会。我擦实在想不到还有啥原因了,就这么简单的几行代码。

最后实在想不到啥原因,应该不会是button这个按钮会提交表单吧??。。。然后搜了一下,,,结果就是button这个东西搞的鬼!!!没想到你个浓眉大眼的家伙也叛变革命了???!!!

button的type有三种:button、reset、submit,如果没写type,默认type不是你以为的“button”,而是“submit”,“submit”,“submit”!!!重要的事情说三遍!!!

 

好了,今天的bug就记录到这里,观众朋友们,下次bug,再会!

 

参考:

https://blog.csdn.net/S_clifftop/article/details/79006971

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值