layui框架学习(41:表单模块)

  之前的文章《layui框架学习》14-16中介绍了通过预设类及部分layui属性设置表单的外观样式,layui中还提供有表单模块以对表单元素进行各类动态化渲染和相关操作,本文学习并记录表单模块form的常用属性、函数及事件的用法(如果内容已在之前文章中涉及,则不在记录,避免重复)。
  动态渲染。虽然通过预设类能够设置表单的样式,但在交互过程中,如果表单元素的内容发生变化(主要是下拉框、复选框、单选框),则需要调用form.render(type, filter)函数重新渲染表单元素样式,其中type的取值包括select、checkbox 、radio,filter指设置了lay-filter属性的表单,如果filter为空,则是重新渲染页面中所有表单中的指定type的表单元素。

  自定义验证规则。表单中通过lay-verify属性设置元素的内容验证规则,除了layui内容的验证规则外(必填项、手机号、邮箱等),表单模块支持调用form.verify设置自定义规则,然后在lay-verify属性中指定自定义规则名称即可。自定义验证规则的使用示例及效果如下所示:

<div style="width: 600px;">
	<form class="layui-form" action="">
	  <div class="layui-form-item">
	    <label class="layui-form-label">用户名</label>
	    <div class="layui-input-block">
		  <input type="text" name="rsname" lay-verify="required|username" placeholder="请输入用户名" autocomplete="off" class="layui-input">
	    </div>
	  </div>
	  <div class="layui-form-item">
	    <label class="layui-form-label">短信码</label>
	    <div class="layui-input-block">
	      <input type="text" name="rsname" lay-verify="required|code" placeholder="请输入短信码" autocomplete="off" class="layui-input">
	    </div>
	  </div>			  
	  <div class="layui-form-item">
	    <div class="layui-input-block">
	      <button class="layui-btn layui-bg-red layui-btn-radius" lay-submit>提交</button>
	    </div>
	  </div>
	</form>
</div>

<script>
	layui.use(['form','layer'], function(){
	  var form = layui.form; 
	  form.verify({	  
		username: function(value, item)//自定义验证规则可以为函数形式
		{ 
		  if(value === '机器猫'){
			return '用户名不能为机器猫';
		  }
		}	
		//也可以采用数组,第一个值为匹配正则表达式,第二个值为不匹配时的报错信息	    
		,code: [/^\d{4,6}$/,'短信码必须为4到6位的数字'] 
	  });
 
	});
</script>

在这里插入图片描述

  select事件。下拉框中选择某一值后会触发select事件,通过form.on(‘select(filter)’, function(data))代码可以获取该事件并做响应处理。事件处理函数示例及截图如下所示:

	<div style="width: 600px;">
		<form class="layui-form" action="">
		  ...
		  <div class="layui-form-item layui-form-select">
		    <label class="layui-form-label">选择城市</label>
		    <div class="layui-input-block input_city">
		      <select name="type" lay-search="">
		  					  <option value=""></option>
		        <optgroup label="河北省">
		  						<option value="0">石家庄</option>
		  						<option value="1">秦皇岛</option>
		  					</optgroup>
		  					<optgroup label="四川省">
		  						<option value="2">成都</option>
		  						<option value="3">广汉</option>
		  					</optgroup>
		        <optgroup label="湖北省">
		        	<option value="4">武汉</option>
		  			<option value="5">荆州</option>
		        </optgroup>
		      </select>
		    </div>
		  </div>
		  ...
		  </div>
		</form>
	</div>
	
	<script>
		layui.use(['form','layer'], function(){
		  var form = layui.form; 
		  var layer = layui.layer;		  
		  ...		  
		  form.on('select()', function(data){
			  layer.alert("选择的值为"+data.value)
		  });	 
		});
	</script>

在这里插入图片描述

  checkbox 事件。勾选或取消勾选复选框时会触发checkbox 事件,通过form.on(‘checkbox(filter)’, function(data))代码可以获取该事件并做响应处理。事件处理函数示例及截图如下所示:

	form.on('checkbox()', function(data)
	{
	     layer.alert("checked = "+data.elem.checked+ ",value = "+data.value)
	});

在这里插入图片描述
在这里插入图片描述

  switch 事件。切换开关组件值时会触发switch 事件,通过form.on(‘switch(filter)’, function(data))代码可以获取该事件并做响应处理。事件处理函数示例及截图如下所示:

form.on('switch()', function(data)
{
  layer.alert("checked = "+data.elem.checked+ ",value = "+data.value)
});

在这里插入图片描述
在这里插入图片描述

  radio 事件。单击某一单选框会触发radio 事件,通过form.on(‘radio(filter)’, function(data))代码可以获取该事件并做响应处理。事件处理函数示例及截图如下所示:

form.on('radio()', function(data)
{
 	layer.alert("title = "+data.elem.title+",value = "+data.value)
});

在这里插入图片描述
在这里插入图片描述
  表单赋值 / 取值函数。调用表单模块中的form.val(‘filter’, object)函数可以赋值/取值表单元素,如果 object 参数存在,则为赋值;如果 object 参数不存在,则为取值。详细说明请见参考文献2-3,在此不再细说。

参考文献:
[1]B站:layui框架精讲全套视频教程
[2]https://layui.gitee.io/v2/docs/
[3]https://layui.gitee.io/v2/demo/
[4]https://github.com/layui/layui/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/94511.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MSLearn 开学季:AI 进阶系列|PromptFlow - 做一个教育行业的 Copilot 应用

点击蓝字 关注我们 编辑&#xff1a;Alan Wang 排版&#xff1a;Rani Sun 微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0…

Ansible 自动化运维工具的使用

目录 一、Ansible简介 二、Ansible 的安装和使用 1.下载 2.使用 三、Ansible命令和模块 1.命令格式 2.命令行模块 &#xff08;1&#xff09;command 模块 &#xff08;2&#xff09;shell 模块 &#xff08;3&#xff09;cron 模块 &#xff08;4&#xff09;user 模…

wazuh初次理解-8-23

一、wazuh配置&#xff1a; 1、进入官网下载OVA启动软件&#xff1a; Virtual Machine (OVA) - Installation alternatives 2、进入虚拟机进行配置&#xff1a; 3、登录提示&#xff1a; 4、将网络连接模式更改为NAT&#xff0c;否则不能上网&#xff1b; 4、重启网络&#…

爬虫异常处理之如何处理连接丢失和数据存储异常

在爬虫开发过程中&#xff0c;我们可能会遇到各种异常情况&#xff0c;如连接丢失、数据存储异常等。本文将介绍如何处理这些异常&#xff0c;并提供具体的解决代码。我们将以Python语言为例&#xff0c;使用requests库进行网络请求和sqlite3库进行数据存储。 1. 处理连接丢失 …

NineData X SelectDB 联合发布会,即将上线!

8月30日晚上19:00&#xff0c;由 NineData 和 SelectDB 共同举办的主题为“实时数据驱动&#xff0c;引领企业智能化数据管理”的线上联合发布会&#xff0c;即将如期上线&#xff01; 本次发布会将聚焦于实时数据仓库技术和数据开发能力&#xff0c;展示SelectDB新一代实时数据…

如何在VR头显端实现低延迟的RTMP或RTMP播放

技术背景 VR&#xff08;虚拟现实技术&#xff09;给我们带来身临其境的视觉体验&#xff0c;广泛的应用于城市规划、教育培训、工业仿真、房地产、水利电力、室内设计、文旅、军事等众多领域&#xff0c;常用的行业比如&#xff1a; 教育行业&#xff1a;VR头显可以用于教育…

ARM寄存器组

CM3 拥有通用寄存器 R0‐R15 以及一些特殊功能寄存器。 R0-R7&#xff0c;通用目的寄存器 R0-R7也被称为低组寄存器&#xff0c;所有指令可以访问它们&#xff0c;它们的字长为32位&#xff0c;复位后的初始值是不可预料的。 R8-R12&#xff0c;通用目的寄存器 R8-R12也被称…

Apple Configurator iphone ipad 设备管控 描述文件使用方法

一、准备 App Store 下载安装 Apple Configurator 二、Apple Configurator 注册组织&#xff0c; -----------这个组织可以是个人&#xff0c;或者其它组织导出-------再导入进来&#xff1a; 三、描述文件配置&#xff1a;“” 根据管控需求进行配置 “” 四、使用 Ap…

微前沿 | 第1期:强可控视频生成;定制化样本检索器;用脑电重建视觉感知;大模型鲁棒性评测

欢迎阅读我们的新栏目——“微前沿”&#xff01; “微前沿”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里&#xff0c;你可以快速浏览研究院的亮点资讯&#xff0c;保持对前沿领域的敏锐嗅觉&#xff0c;同时也能找到先进实用的开源工具。 本期内容速览 01. 强可…

数据结构之单链表java实现

基本概念 链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中指针链接次序实现的。和数组相比较&#xff0c;链表不需要指定大小&#xff0c;也不需要连续的地址。 单链表的基本设计思维是&#xff0c;利用结构体的设置&#xff0c…

爬虫selenium获取元素定位方法总结(动态获取元素)

目录 元素 查看元素信息 元素定位 通过元素id定位 通过元素name定位 通过xpath表达式定位 绝对路径 相对路径 通过完整超链接定位 通过部分链接定位 通过标签定位 通过类名进行定位 通过css选择器进行定位 id选择器 class选择器 标签选择器 属性选择器 定位带…

CPU、MCU、MPU、SOC、SOCPC、概念解释之在嵌入式领域常听到的名词含义

CPU、MCU、MPU、SOC等几个在嵌入式领域学习过程中会涉及到的几个名词。我们来学习一下&#xff0c;资料从网上搜集的&#xff0c;有错的地方可以指出。。。 CPU、MCU、MPU、SOC、SOCPC、 1. CPU2. MPU3.MCUMPU和MCU的区别&#xff1a;4.SOC5. SoPC 1. CPU CPU&#xff0c;即中…

HBase--技术文档--基本概念--《快速扫盲》

官网 Apache HBase – Apache HBase™ Home 阿里云hbase 云数据库HBase_大数据存储_订单风控_数据库-阿里云 云数据库 HBase-阿里云帮助中心 基本概念 HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。它基于Hadoop&#xff0c;采用列式存储方式&#xff0c;可…

数据库第十七课-------ETL任务调度系统的安装和使用

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

如何基于自己训练的Yolov5权重,结合DeepSort实现目标跟踪

网上有很多相关不错的操作demo&#xff0c;但自己在训练过程仍然遇到不少疑惑。因此&#xff0c;我这总结一下操作过程中所解决的问题。 1、deepsort的训练集是否必须基于逐帧视频&#xff1f; 我经过尝试&#xff0c;发现非连续性的图像仍可以作为训练集。一个实例&#xff0…

本地组策略编辑器找不到怎么解决?| 解决windows home 版本隐藏本地组策略编辑器的问题 | 简单的介绍本地组策略编辑器

一般的 Windows 非家庭系统中&#xff0c;本地组策略编辑器不会被隐藏&#xff0c;但在某些特定情况下&#xff0c;可能会受到限制或不可用。如果你无法访问本地组策略编辑器&#xff0c;并且认为应该可以访问&#xff0c;请确保你拥有管理员权限&#xff0c;并检查是否有任何系…

Qt应用开发(基础篇)——对话框窗口 QDialog

一、前言 QDialog类继承于QWidget&#xff0c;是Qt基于对话框窗口(消息窗口QMessageBox、颜色选择窗口QColorDialog、文件选择窗口QFileDialog等)的基类。 QDialog窗口是顶级的窗口&#xff0c;一般情况下&#xff0c;用来当做用户短期任务(确认、输入、选择)或者和用户交流(提…

文件上传漏洞之条件竞争

这里拿upload-labs的第18关做演示 首先先看代码 $is_upload false; $msg null;if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_name $_FILES[upload_file][name];$temp_file $_FILES[upload_file][tmp_name];$file_ext substr($file_name,strrpos($file_…

MyBatis-Plus框架技术总结

MybatisPlus 1、概述 MybatisPlus是一款Mybatis增强工具&#xff0c;用于简化开发&#xff0c;提高效率。 它在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 ​ 官网&#xff1a; https://mp.baomidou.com/ 2、快速入门 2.0、准备工作 ①准…

怎样快速选择正确的可视化图表?

数据可视化的图表类型十分丰富&#xff0c;好的图表可以有效、清晰地呈现数据的信息。对于用户而言&#xff0c;选择正确的图表是十分关键的&#xff0c;不仅可以达到“一图胜千言”的效果&#xff0c;而且会直接影响分析的结果。 用户选择正确的数据可视化图表前&#xff0c;…