使用layui-form表单ajax传输问题

本文解决了在使用layui框架时遇到的两个常见问题:一是提交表单后页面返回原URL的问题,解决方法是在相应的方法中添加return false;二是ajax的success回调不执行的问题,解决方法是使用layui内置的jquery库并注释掉dataType属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、提交表单一直返回原页面并且在url上多一个?

解决办法:在次方法上加上return false

2、ajax的success不回调问题?

解决办法:脚本前加上var $ = layui.jquery;

另外  要把ajax里面的dataType给注释掉。

 

看来layui还是有很多坑啊,折腾了我好多时间

 

@using HengJiuGamesManage.Models; @{ Layout = null; } @{ Users users = new Users(); if (ViewBag.UserModel != null) { users = ViewBag.UserModel; } } <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>恒久游戏管理系统</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="~/Scripts/layui/css/layui.css" rel="stylesheet" /> <script src="~/Scripts/jquery-3.4.1.js"></script> <style> .layui-footer { display: flex; justify-content: center; } </style> </head> <body> <div class="layui-layout layui-layout-admin"> <div class="layui-header"> <div class="layui-logo layui-hide-xs layui-bg-black">恒久游戏管理系统</div> <!-- 头部区域(可配合layui 已有的水平导航) --> <ul class="layui-nav layui-layout-left"> <!-- 移动端显示 --> <li class="layui-nav-item layui-hide-xs"><a href="javascript:;">nav 1</a></li> <li class="layui-nav-item layui-hide-xs"><a href="javascript:;">nav 2</a></li> <li class="layui-nav-item layui-hide-xs"><a href="javascript:;">nav 3</a></li> <li class="layui-nav-item"> <a href="javascript:;">nav groups</a> <dl class="layui-nav-child"> <dd><a href="javascript:;">menu 11</a></dd> <dd><a href="javascript:;">menu 22</a></dd> <dd><a href="javascript:;">menu 33</a></dd> </dl> </li> </ul> <ul class="layui-nav layui-layout-right"> <li class="layui-nav-item layui-hide layui-show-sm-inline-block"> <a href="javascript:;"> <img src="//unpkg.com/outeres@0.0.10/img/layui/icon-v2.png" class="layui-nav-img"> @users.UserName </a> <dl class="layui-nav-child"> <dd><a href="javascript:;" onclick="ModifyInfo()">个人资料</a></dd> <dd><a href="javascript:;" onclick="ModifyPassword()">修改密码</a></dd> <!-- 新增修改密码菜单 --> <dd><a href="javascript:;" onclick="Exit()">退出登录</a></dd> </dl> </li> <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect> <a href="javascript:;"> <i class="layui-icon layui-icon-more-vertical"></i> </a> </li> </ul> </div> <div class="layui-side layui-bg-black"> <div class="layui-side-scroll"> <!-- 左侧导航区域(可配合layui已有的垂直导航) --> <ul class="layui-nav layui-nav-tree" lay-filter="test"> <!-- 完整保留原有游戏分类布局 --> <li class="layui-nav-item layui-nav-itemed"> <a class="" href="javascript:;">游戏大类</a> <dl class="layui-nav-child"> <dd><a href="javascript:;">王者荣耀</a></dd> <dd><a href="javascript:;">永劫无间</a></dd> <dd><a href="javascript:;">三角洲行动</a></dd> <dd><a href="javascript:;">解限机</a></dd> </dl> </li> <li class="layui-nav-item"> <a href="javascript:;">权限管理</a> <dl class="layui-nav-child"> <dd><a href="javascript:;">普通用户</a></dd> <dd><a href="javascript:;">管理员</a></dd> <dd><a href="javascript:;">超级管理员</a></dd> </dl> </li> <li class="layui-nav-item"><a href="javascript:;">帮助</a></li> </ul> </div> </div> <div class="layui-body"> <!-- 内容主体区域 --> <div style="padding: 15px;"> <blockquote class="layui-elem-quote layui-text"> Layui 框体布局内容主体区域 </blockquote> <div class="layui-card layui-panel"> <div class="layui-card-header"> 下面是充数内容,为的是出现滚动条 </div> <div class="layui-card-body"> </div> </div> <br><br> </div> </div> <div class="layui-footer" style="justify-content: center;"> Copyright © 2025 Layui MIT Licensed 免责声明开源协议 在线测试 广告赞助 静态主题 </div> </div> <!-- 修改密码弹窗 --> <div id="passwordModal" style="display: none; padding: 20px;"> <form class="layui-form"> <div class="layui-form-item"> <label class="layui-form-label">原密码</label> <div class="layui-input-inline"> <input type="password" name="OldPassword" lay-verify="required|pass" placeholder="请输入原密码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">新密码</label> <div class="layui-input-inline"> <input type="password" name="NewPassword" id="newPass" lay-verify="required|pass|passcheck" placeholder="请输入新密码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">确认密码</label> <div class="layui-input-inline"> <input type="password" id="confirmPass" lay-verify="required|passcheck" placeholder="请再次输入新密码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="changePass">立即修改</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> </div> <script src="~/Scripts/layui/layui.js"></script> <script> //JS layui.use(['element', 'layer', 'form', 'util'], function () { var element = layui.element; var layer = layui.layer; var form = layui.form; var util = layui.util; var $ = layui.$; //头部事件 util.event('lay-header-event', { menuLeft: function (othis) { // 左侧菜单事件 layer.msg('展开左侧菜单的操作', { icon: 0 }); }, menuRight: function () { // 右侧菜单事件 layer.open({ type: 1, title: '公告', content: '<div style="padding: 15px;">公告1</div>', area: ['260px', '100%'], offset: 'rt', // 右上角 anim: 'slideLeft', // 从右侧抽屉滑出 shadeClose: true, scrollbar: false }); } }); // 表单验证 form.verify({ pass: [/^[\S]{6,12}$/, '密码必须6-12位且不能包含空格'], passcheck: function (value) { if ($('#newPass').val() && $('#confirmPass').val() && $('#newPass').val() !== $('#confirmPass').val()) { return '两次输入的密码不一致'; } } }); // 提交事件 form.on('submit(changePass)', function (data) { // TODO: 添加密码修改逻辑 console.log(data.field); layer.msg('提交成功', { icon: 1 }); return false; }); }); //退出 function Exit() { $.ajax({ url: "/Home/ExitSession", type: "post", success: function (res) { if (res.code == 0) { layer.msg(res.msg, { icon: 6, time: 2000 }, function () { window.location.href = "/Login/Index"; }) } else { layer.msg(res.msg, { icon: 5, time: 2000 }); } } }) } // 修改资料弹窗 function ModifyInfo() { layer.open({ type: 2, // page 层类型 area: ['669px', '638px'], title: '资料修改', shade: 0.5, // 遮罩透明度 shadeClose: false, // 点击遮罩区域,关闭弹层 maxmin: false, // 允许全屏最小化 anim: 0, // 0-6 的动画形式,-1 不开启 content: '/Home/ModifyBaseInfo', end: function () { // 刷新当前页面 location.reload(); } }); } // 修改密码弹窗 function ModifyPassword() { layer.open({ type: 1, title: '修改密码', area: ['450px', '300px'], content: $('#passwordModal'), success: function () { layui.form.render(); } }); } </script> </body> </html>using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using HengJiuGamesManage.Models; namespace HengJiuGamesManage.Controllers { public class HomeController : Controller { ReturnJsonData jsonData = new ReturnJsonData(); public ActionResult Index() { //获取服务器中存储的session数据 var sessionUsers = System.Web.HttpContext.Current.Session["Users"]; if(sessionUsers == null) { return Redirect("/Login/Index"); } //强制转化 Users users = sessionUsers as Users; //赋值 ViewBag.UserModel = users; return View(); } public ActionResult ExitSession() { //删除session 变量 Session.Remove("Users"); var sessionUsers = System.Web.HttpContext.Current.Session["Users"]; if (sessionUsers == null) { jsonData.code = 0; jsonData.msg = "退出成功,请稍后"; } else { jsonData.code = 1; jsonData.msg = "网络不稳定,请重新尝试"; } return Json(jsonData); } public ActionResult ModifyBaseInfo() { var sessionUsers = System.Web.HttpContext.Current.Session["Users"]; if (sessionUsers == null) { return Redirect("/Login/Index"); } return View(); } public ActionResult GetUserInfo(Users users) { try { // 1. 获取当前用户 ID(或从表单隐藏域获取) var userId = users.ID; // 2. 查询数据库中的用户 using (var db = new AoutEntities()) { var user = db.Users.FirstOrDefault(u => u.ID == userId); if (user == null) { return Json(new { code = 1, msg = "用户不存在" }); } // 3. 更新用户信息(根据表单字段赋值) user.UserCode = users.UserCode; user.UserName = users.UserName; user.Sex = users.Sex; user.BirthDay = users.BirthDay; user.NativePlace = users.NativePlace; user.Email = users.Email; user.Tel = users.Tel; user.Address = users.Address; db.SaveChanges(); // 保存到数据库 var result = db.SaveChanges(); return Json(new { code = 0, msg = "修改成功" }); } } catch (Exception ex) { return Json(new { code = 1, msg = "修改失败:" + ex.Message }); } } } }这两段代码给出优化
最新发布
07-08
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值