layui表单赋值不起作用_解决layui表单ajax提交回调函数不起作用问题的两种方式...

最近想用layui开发一个论坛模板用的是fly-ui,才接触layui对其还不太熟悉。一个简单的登录就困扰了我很久。登录的form通过ajax提交回调函数老是不起作用。

经过浪费了N多时间的调试,发现layui的button默认就是submit提交。所以在ajax提交的时候同时进行了submit的表单提交。因为ajax是异步的,所以在回调函数还没有来得及执行,submit把表单页面提交了,所以回调函数老是不起作用。后台还有可能报不支持的post请求。因为通过submit把表单又提交了一次。搞清楚原因以后,解决这个问题的思路就很清楚了。就是不能让表单即用ajax处理又通过submit提交。

解决方案一、不用layui的submit按钮,把按钮定义成普通的button,通过调用ajax的方式提交。

解决方案二、用layui的submit按钮,在执行了ajax请求后通过return false直接终止(非常关键!)不让再submit了。

表单如下:

用户名

密码

立即登录

方案一

将layui的提交按钮改成普通的按钮通过显示申明type="button"定义按钮为普通的按钮。

立即登录

function login() {

$.post(ctx + "bbs/login", {

"username" : $("input[name='username']").val(),

"password" : $("input[name='password']").val(),

"rememberMe" : 0

}, function(data) {

alert(JSON.stringify(data));

});

}

方案二

提交按钮还是layui的默认按钮,lay-submit默认是submit的提交按钮会触发表单的提交。在ajax方法后面通过return false直接终止(非常关键!)不让再submit

立即登录

//表单

layui.use('form', function() {

var form = layui.form;

//监听提交

form.on('submit(bbsLogin)', function(data) {

$.post(ctx + "bbs/login", {

"username" : data.field.username,

"password" : data.field.password,

"rememberMe" : 0

}, function(data) {

alert(JSON.stringify(data));

});

return false; //非常关键,否则回调不起作用

});

});

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值