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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值