整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

基于TP5框架,演示UI框架Layui的表单验证以及

基于TP5框架,演示UI框架Layui的表单验证以及监听submit提交

接昨日文章《「UI框架」Layui结合form,table实现全选、反选效果》,今日实现form表单的简单验证以及监听submit提交。以添加友情链接为例,如图:

HTML代码如下:

对应的JS代码如下:

JS代码中我用到了表单验证以及监听submit提交。form.verify为表单验证,当内置验证满足不了使用时,用来自定义验证规则,通常对于比较复杂的校验。我在链接名称那里加了lay-verify="required|name"、在链接那里加了lay-verify="required|url",验证通过的前提是,名称、链接都必须填写,并且名称“链接名称必须1到6位,且不能出现空格”,链接必须是http://开头的正确地址。验证效果如下:


lay-verify预设了required(必填项)、phone(手机号)、email(邮箱)、url(网址)、number(数字)、date(日期)、identity(身份证)等内置验证,可以同时使用多条验证,再具体的可以移步layui官网。

form.on('submit(add)', function(data) {});用来监听submit提交,submit里面的参数add是事件过滤器的值,我已经在HTML代码中的button设置了lay-filter='add'来实现绑定。

监听submit返回了三个值,分别为elem:被执行事件的元素DOM对象,一般为button对象;form被执行提交的form对象,一般在存在form标签时才会返回;field:当前容器的全部表单字段,名值对形式:{name: value}。

这里,我通过ajax提交时,让控制器返回一些数据,比如状态、提示语等。我这里用的是PHP开源框架ThinkPHP5,通过success返回的参数有:code状态码,msg提示信息,url:跳转链接。

对应的PHP代码如下(纯前端人员可以忽略):

提交后弹窗提示“添加成功”并自动关闭,然后跳转到对应的URL,效果如下。

OK!Layui表单验证以及表单提交就这么简单,相对于以前可以少些很多js代码。欢迎留言交流!

<script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

HTML表单

HTML 表单用于搜集不同类型的用户输入。

<form> 元素

<form> 元素定义 HTML 表单:

语法:<form></form>

HTML 表单包含表单元素

表单元素指的是不同类型的 input 元素、复选框、单选按钮、提交按钮等等。

<input> 元素有很多形态,根据不同的 type 属性。

1. 文本输入

<input type="text"> 定义用于文本输入的单行输入字段

2、密码框

<input type="password"> 定义单选按钮。

密码框是为了隐藏用户密码信息的输入框,语法形式与文本框差不多,不同的是类型 为 password。

3、单选按钮输入

<input type="radio"> 定义单选按钮。

单选按钮是在表单中有多个选项,且只能选一个的情况下使用。

注:checked表示默认选中项。

如:<input type="radio" name="sex"checked> 男

<input type="radio" name="sex"> 女

表示默认选中男项。

4、复选框(Checkboxes)

<input type="checkbox"> 定义了复选框。

复选框是可以选多个选项的选项框,与单选不同的是复选框可以选取多个选项,而且也可以默认几个选项都处于选中状态。

注:checked表示默认选中项。

如:<input type="checkbox" checked>

5、<select> 元素(下拉列表)

下拉列表是可以选择的列表,当在列表中选择要选的选项时使用,只能选其中一个选项(通过设置也可以选几项)。

语法:

<select>

<option>北京</option>

<option selected>上海</option>

</select>

注:selected 表示默认选中项

6、<textarea> 元素(文本域)

<textarea> 元素定义多行输入字段:

文本域是用在要输入多行文本,填写大量的文字时用到。

TML面试题总结

1. 对 HTML 语义化的理解

  1. 去掉或者丢失样式的时候能够让页面呈现出清晰的结构;
  2. 代码结构清晰,方便团队的管理和维护,并且语义化更具有可读性,减少差异化;
  3. 提升用户体验; 例如:title、alt用于解释名词或者图片信息、label标签的活用
  4. 有利于SEO优化,提升搜索引擎排名; 和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息; 爬虫依赖于标签来确上下文和关键字的权重;
  5. 方便其他设备的解析(屏幕阅读器、盲人阅读器、移动设备等等);

2. H5新增特性

  1. 语义化更好的标签: header、nav、aside、article、section、footer;
  2. 音视频标签: audio、video; 如果浏览器不支持自动播放怎么办? 在属性中添加autoplay(谷歌浏览器不支持音频自动播放,但是视频支持静音自动播放);
  3. 以 data- 开头的自定义属性
  4. 本地存储: localStorage、sessionStorage;
  5. 表单控件; 给 type 属性设置值; url、search、file、email、date、number、month、color、tel;
  6. 画布; Canvas;
  7. 拖拽释放: drag、drop;
  8. 新技术: 浏览器多线程:webWorker; 前后台持久化通信技术:webSocket;

3. HTML5常用的结构标签有哪些,它替换了之前的哪些标签?

  • header、nav、main、article、aside、footer、section
  • <div class="header">、<div class="nav">、<div class="main">...

4. HTML文档采用 UTF-8编码集 的优势是什么?

  1. utf-8: 使用3个字节表示一个符号,基本上可以覆盖世界上所有的语言;
  2. 优势: 与传统的gb2312、gbk相比,可识别的字符集更多,也是行业界推荐的;

5. 标签中常用的属性有哪些?

  • id、class、title、style;

6. 标签中的 title属性 和 alt属性 的区别是什么?

  1. title: 是标签的描述属性,当鼠标移入时,稍等一会儿就会出现title属性的属性值;
  2. alt: 用在可置换元素上,当外部资源无法正确加载时,alt属性的属性值就会显示在占位符上;

7. 什么是置换元素 和 非置换元素,每种类型至少举出三个例子

  1. 置换元素: 置换元素的内容来自外部,该元素仅是外部资源的占位符; <img>、<video>、<audio>...;
  2. 非置换元素: 非置换元素内容来自当前文档,必须使用双标签; <p>、<h1> ~ <h6>、<ul>...;

8. 标签中的 href属性 和 src属性 有什么区别?

  1. 二者都是对外部资源的引用;
  2. href: 用于超文本或样式,用在 <link>标签 和 <a>标签上;
  3. src: 用在外部资源占位符上,如<img>、<iframe>、<script>、<video>...;

9. iframe标签有什么优缺点?

  1. 优点: 重载页面时不需要加载整个页面,只需要重载页面中的一个框架页,从另一方面来说,减少数据的传输,加快了网页下载速度; 技术易于掌握,使用方便,可主要使用于不需要搜索引擎来搜索的页面; 当前页面,直接加载其他页面,而不必发生跳转;
  2. 缺点: iframe 会阻塞主页面中的 Onload 事件; 会产生很多页面,不容易管理; 多框架的页面会增加服务器的http请求,影响页面的并行加载; 并行加载:同一时间针对不同域名下的请求,iframe和所在页面在同一个域下面,而浏览器的并行加载的数量是有限制的;

10. 表单中的按钮有几种,常用的标签有哪几个?

  1. 按钮有三种: 普通按钮、提交按钮、重置按钮;
  2. 常用标签:
<input type="button" />
<input type="submit" />
<input type="rest" />
<button />

11. 表单数据的提交方式有几种,分析使用场景?

  1. POST: 表单数据通过请求体发送;
  2. GET: 表单数据通过URL地址栏发送;

12. 什么是 重绘 和 重排?

  1. 重绘: 当元素的一部分属性发生改变,如外观、背景、颜色等不会引起布局变化,只需浏览器根据元素的新属性重新绘制,使元素呈现新的外观叫做重绘;
  2. 重排: 和重绘相反,当改变布局的时候,就会引起重排;
  3. 重绘不一定需要重排(比如颜色的改变),重排必然导致重绘(比如改变网页位置)