注意事项:

  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. MPLS VPN随堂笔记2

    深入理解ospf 理解MPLS VPN 中对OSPF 层次化设计的补充 supper backbone area 2:理解MPLS VPN 中OSPF 的区域设计概念 3:理解MPLS VPN 中OS ...

  2. Spring Ioc DI 原理

    IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更不像有些书上描述的那样晦涩.Java程序员都知道:java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成,通常,每个对象在使用 ...

  3. 201521123083《Java程序设计》第13周学习总结

    本次作业参考文件 正则表达式参考资料 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.bai ...

  4. 戴建钊 201521123023《Java程序设计》第2周学习总结

    1. 本周学习总结 (1)String类:字符串连接"+",以前觉得方便但不知其原理,所以在有大量修改字符串操作的时候用得不亦乐乎,既浪费内存,又减缓效率.现在知道用Stringb ...

  5. 学号:201521123116 《java程序设计》第二周学习总结

    1. 本章学习总结 一:学习了string的类型,string的对象是不可变的,创建之后不能再修改 二:SET PATH/CLASSPATH和-cp的用法. 三:学习了Java API 文档的使用方法 ...

  6. Srping - bean的依赖注入(Dependency injection)

    目录 1 概述 2 两种基本的依赖注入方式 2.1 构造函数方式 2.2Setter方式 3 其他依赖注入功能 3.1 <ref/>标签引用不同范围的bean 3.2 内部bean 3.3 ...

  7. org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML doc

    今天在Spring中换了一种配置bean的方式,发现报错了Unexpected exception parsing XML document from class path resource , 经过 ...

  8. 笔记|《简明Python教程》:编程小白的第一本python入门书

    <简明Python教程>这本书是初级的Python入门教材,初级内容基本覆盖,对高级内容没有做深入纠结.适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅. 下面是我根据各个 ...

  9. angularjs的几种常见写法

    学习angularjs不久,遇见的angularjs的写法也是很多的感觉,今天就在这里记录一下,还有没见过的,继续学习中... angularjs 常用的几种种写法 1.链式: angular.mod ...

  10. spring cloud+dotnet core搭建微服务架构:服务发现(二)

    前言 上篇文章实际上只讲了服务治理中的服务注册,服务与服务之间如何调用呢?传统的方式,服务A调用服务B,那么服务A访问的是服务B的负载均衡地址,通过负载均衡来指向到服务B的真实地址,上篇文章已经说了这 ...