Ajax提交form触发提交事件时无法阻止刷新

提问 未结 15 328
雪花angle
雪花angle 2020-3-20
悬赏:20飞吻
版本:layui 最新 浏览器:chrome
有个不大不小的问题,from提交方法的data对象没法直接通过ajax进行提交。在提交方法的时候,即使我已经返回了false,但是依旧会触发默认的页面刷新行为。

 form.on('submit(demo2)', function(data){
alert("点击触发")
formsubmitdataadd(data)
return false;
});
function formsubmitdataadd(data){
document.getElementById("userid").value = "12356";
$.post("{:U('student/add_studentHd')}",data,function(res){

});
}
在JS中,我希望直接提交对象而不是JSON字符串,后台可以通过JS对象取得值。
但是在实施的时候发现,没法直接提交data而且不刷新页面。求问,是不是我那个参数写少了
回帖
  • IDyun
    2020-3-20
    有几个方法
    1、 form 改成 div
    2、 button 改成 a
    3、 button 加上 type="button"
    网上也可以搜索其他方法
    0 回复
  • 你在开玩笑么?对象怎么传输? 随便怎么变,也是字符串传递的吧,就算你提交一个对象给ajax,它里面也会给你按照Content-type设定给你序列化掉,还是字符串
    把表单的action去掉,或者写成action='javascript:;' button type='button' 加上 试试
    0 回复
  • 一楼更详细
    0 回复
  • Gosse
    2020-3-21
    你的ajax方法,传递就送数据应该是data.field
    0 回复
  • @IDyun 无效 button改input可以组织但是无法提交
    0 回复
  • @Gosse 但是date可以被传送,后台可以取值,只是没法阻止刷新,按道理说,只要return了false就应该不刷新
    0 回复
  • @muxinss 不不不 对象可以传输,以表单提交只是一种形式 restflu风格的aip就可以不以表单的形式提交 表单的action和metho属性我都没写 提交是ajax的形式
    0 回复
  • @muxinss 我试试 感谢
    0 回复
  • @雪花angle
    我是这样处理的
    <div class="layui-form" lay-filter="ABC">
    <button lay-submit lay-filter="sbmt-ABC">提交</button>
    </div>
    <script>
    form.on('submit(sbmit-ABC)',(data)=>{
    data.field// 表单数据域
    return false;
    })
    </script>
    0 回复
  • @雪花angle 你说的这种提交对象,network传递的数据不还是字符或者二进制数据么
    0 回复