注意事项:

  1. layui 中提交按钮是基于“监听”机制实现的。
  2. form.on() 的调用需置于 layui.use 的回调函数中。
  3. 末尾的 'return false' 不可或缺,以确保不会触发页面刷新。注意必须是 'return false',而不能简单写成 'return'。

抓取表单数据可按四步来实现:

  1. 禁用按钮。防止用户连续点击,需注意,在 Ajax 请求结束后(complete)再次显式启用按钮。
  2. 整合表单数据。很多时候,除了要获取正式表单的数据,还需要额外追加一些数据。
  3. 确定路径。有时候,同一个按钮可以表达多种操作,比如新增或修改。
  4. 发起请求。发起 Ajax 请求,向服务器传递参数,并在回调函数中对返回值做处理。
  5. return false。

重要代码列举

  1. HTML 声明
<form class="layui-form">
<input type="hidden" name="id" />
<button class="layui-btn layui-btn-sto" id="btnSave" lay-filter="btnSave" lay-submit>保存</button>
</form>

如果仅需要监听效果(单击事件),则只需上述一个 button 以及 lay-filter 和 lay-submit。

如果需要收集表单元素的值,则还需要 form 以及其样式 layui-form。

  1. js 事件监听
// 保存
form.on('submit(btnSave)', function (data) {
console.info('开始保存'); // * 按钮禁用
var isDisabled = $("#btnSave").hasClass('layui-btn-disabled');
if (isDisabled) {
return false;
} // * 整合表单数据
var formData = data.field;
$.extend(formData, { Id: $("#hiddenId").val() });
console.info(formData); // * 确定路径
var url = "";
if (editMode == "add") {
url = urlEnum.Add;
} else if (editMode == "update") {
url = urlEnum.Update;
} else {
alert('编辑模型不确定, add / update');
return;
} // * 发起请求
$.ajax({
data: formData,
type: "POST",
dataType: "JSON",
url: url,
beforeSend: function () {
// 禁用
$("#btnSave").addClass('layui-btn-disabled');
},
complete: function () {
// 启用
$("#btnSave").removeClass('layui-btn-disabled');
},
success: function (result) {
console.info("保存数据成功,返回的数据为:↓ ");
console.info(result); if (result.Status) {
// 刷新列表
parent.$("#mainGrid").bootstrapTable("selectPage", 1); // 确保在最后关闭窗体
parent.layer.close(parent.layer.getFrameIndex(window.name));
} else {
// 提示失败
layer.alert(result.StatusMessage, { title: '提示信息', icon: 5 });
}
}
}); // end ajax return false;
});

组件 layui 表单抓取数据四步走的更多相关文章

  1. java爬虫--jsoup简单的表单抓取案例

    分析需求: 某农产品网站的农产品价格抓取 网站链接:点击打开链接 页面展示如上: 标签展示如上: 分析发现每日价格行情包括了蔬菜,水果,肉等所有的信息,所以直接抓每日行情的内容就可以实现抓取全部数据. ...

  2. react 项目实战(四)组件化表单/表单控件 高阶组件

    高阶组件:formProvider 高阶组件就是返回组件的组件(函数) 为什么要通过一个组件去返回另一个组件? 使用高阶组件可以在不修改原组件代码的情况下,修改原组件的行为或增强功能. 我们现在已经有 ...

  3. 使用Chrome快速实现数据的抓取(四)——优点

    些一个抓取WEB页面的数据程序比较简单,大多数语言都有相应的HTTP库,一个简单的请求响应即可,程序发送Http请求给Web服务器,服务器返回HTML文件.交互方式如下: 在使用DevProtocol ...

  4. NET 5 爬虫框架/抓取数据

    爬虫大家或多或少的都应该接触过的,爬虫有风险,抓数需谨慎.  爬虫有的是抓请求,有的是抓网页再解析 本着研究学习的目的,记录一下在 .NET Core 下抓取数据的实际案例.爬虫代码一般具有时效性,当 ...

  5. PHP的cURL库:抓取网页,POST数据及其他,HTTP认证 抓取数据

    From : http://developer.51cto.com/art/200904/121739.htm 下面是一个小例程: ﹤?php// 初始化一个 cURL 对象$curl = curl_ ...

  6. PHP Curl模拟登录并抓取数据

    使用PHP的Curl扩展库可以模拟实现登录,并抓取一些需要用户账号登录以后才能查看的数据.具体实现的流程如下(个人总结): 1. 首先需要对相应的登录页面的html源代码进行分析,获得一些必要的信息: ...

  7. 爬虫学习笔记(1)-- 利用Python从网页抓取数据

    最近想从一个网站上下载资源,懒得一个个的点击下载了,想写一个爬虫把程序全部下载下来,在这里做一个简单的记录 Python的基础语法在这里就不多做叙述了,黑马程序员上有一个基础的视频教学,可以跟着学习一 ...

  8. django系列9--django中的组件(form表单)

    modelform整体 from django import forms from app01 import models import hashlib from django.core.except ...

  9. 分布式爬虫:使用Scrapy抓取数据

    分布式爬虫:使用Scrapy抓取数据 Scrapy是Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘. ...

随机推荐

  1. JavaScript封装一个MyAlert弹出框

    平时我们想要显示一些提示信息时会用到alert方法,alert是全局的一个方法,会短暂的中断程序,我们主要用来显示提示客户信息.但是这个方法有一定的局限性,而且本身样式也不够美观.于是我封装了一个实用 ...

  2. 201521123083 《Java程序设计》第7周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains public ...

  3. 第二次作业:结对编程,四则运算的GUI实现

    小伙伴:201421123031 余洋 201421123044  潘志坚  题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是W ...

  4. 【Beta】Daily Scrum Meeting——Day6

    站立式会议照片 1.本次会议为第六次Meeting会议: 2.本次会议在早上9:35,在陆大楼召开,本次会议为30分钟讨论今天要完成的任务以及接下来的任务安排. 燃尽图 每个人的工作分配 成 员 昨天 ...

  5. 【Beta】 第四次Daily Scrum Meeting

    一.本次会议为第四次meeting会议 二.时间:10:00AM-10:20AM 地点:陆大楼 三.会议站立式照片 四.今日任务安排 成员 昨日任务 今日任务 林晓芳 查询app提醒功能模块和用户登录 ...

  6. 201521123109《java程序设计》第二周学习总结

    1. 本周学习总结 (1)学习了字符串String的类型,使用Arrays对数组的处理及其相关的应用 (2)学会使用码云 (3)了解了对象与封装 (4)学会查询Java API文件 2. 书面作业 ( ...

  7. Ubuntu下PHP MySQL环境搭建-upcoming-ChinaUnix博客

    编程语言选择php5 , web服务器选择Apache2 ,后台数据库选择MySQL首先安装编译工具, 打开终端 sudo apt-get install build-essential autoco ...

  8. 201521123059 《Java程序设计》第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 1.协议 --网络中为了进行数据交换(通信)而建立的规则.标准或约定(=语义+语法+规则),比如http, ...

  9. 201521123051《Java程序设计》第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. ·所有的异常类是从 java.lang.Exception 类继承的子类. ·Exception 类是 Throwa ...

  10. webservice第二篇【自定义webservice服务、soa、uddi概念、soap协议】

    自定义webservice服务 我们在上一章节中已经使用wsimport生成本地代理来调用webservice的服务了,其实我们自己写的web应用程序也是可以发布webservice的 我们发布了we ...