1. layui简介
layui是一款基于jQuery的模块化前端UI框架,它致力于提供丰富的前端UI组件和便捷的前端开发体验。layui以技术为核心,致力于让前端开发更加简单。
layui的卓越的UI体验和灵活的模块化使其成为了越来越多的前端开发者的首选。其中,layui中的form表单模块,提供了表单元素、表单验证、文件上传等常见功能,本文将以此为例进行详细讲解。
2. form表单介绍
form表单是网页中最常见也是最重要的交互元素之一,它可以通过表单元素向服务器端提交数据并进行处理。layui中的form表单组件封装了更为丰富的表单元素和表单操作方法,使用户可以更简便地开发表单功能。
2.1. 基础的form表单元素
layui中提供了丰富的表单元素,如input、select、checkbox、radio、textarea等。下面是基本的input元素示例:
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline">
<input type="text" name="username" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-inline">
<input type="password" name="password" lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
</div>
</form>
上面的代码中,我们使用了layui提供的form表单模板,并且加入了两个基本input元素。其中,lay-verify用于表单验证,placeholder用于表单提示,autocomplete表示是否启用自动补全功能,class用于layui的样式设置。
2.2. select选择框
接下来,让我们来看一下layui中的select选择框,select的代码如下:
<div class="layui-form-item">
<label class="layui-form-label">省份</label>
<div class="layui-input-inline">
<select name="province" lay-filter="province">
<option value="">请选择省份</option>
<option value="1">北京</option>
<option value="2">上海</option>
<option value="3">天津</option>
<option value="4">重庆</option>
</select>
</div>
<div class="layui-inline">
<select name="city" lay-filter="city"></select>
</div>
<div class="layui-inline">
<select name="area" lay-filter="area"></select>
</div>
</div>
上面的代码片段展示了三个联动的select选择框,每个选择框中都有一个name属性和一个lay-filter属性,name用于表单提交,lay-filter用于表单监听。
2.3. checkbox复选框
checkbox复选框也是表单中必不可少的元素之一,layui中的checkbox代码如下:
<div class="layui-form-item">
<label class="layui-form-label">兴趣爱好</label>
<div class="layui-input-block">
<input type="checkbox" name="like[write]" title="写作">
<input type="checkbox" name="like[travel]" title="旅游">
<input type="checkbox" name="like[game]" title="游戏">
</div>
</div>
上面的代码实现了一个多选的checkbox复选框,其中name属性值必须添加中括号,这样才能正确提交表单数据。
2.4. radio单选框
radio单选框也是表单中常见的元素之一,layui中的radio代码如下:
<div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<input type="radio" name="sex" value="男" title="男">
<input type="radio" name="sex" value="女" title="女" checked>
</div>
</div>
上面的代码实现了一个单选的radio单选框,其中checked属性设置了默认选项。
3. form表单操作方法
除了基本的表单元素展示,layui中还提供了丰富的表单操作方法,使用户更方便地进行表单操作。
3.1. 表单取值
在表单提交前,我们需要获取表单中的元素值,layui中提供了form.val()方法来获取表单元素的值,代码示例如下:
//获取单个表单元素的值
var username = $('input[name="username"]').val();
console.log(username);
//获取多个表单元素的值
var data = form.val("example");
console.log(data);
上面的代码实现了对表单中的元素值进行获取,其中form.val()方法有两种用法,可以获取单个表单元素的值,也可以获取多个表单元素的值。
3.2. 表单重置
在表单提交失败或者表单清空时,我们需要重置表单元素的值,layui中提供了form.reset()方法实现表单重置,代码示例如下:
$('button[type="reset"]').on('click', function(){
//重置表单元素
form.reset('example');
});
上面的代码实现了在点击重置按钮后,重置表单元素值。
3.3. 表单验证
表单提交前对表单元素进行验证是很重要的一步,layui中提供了form.verify()方法对表单进行验证,代码示例如下:
//自定义表单验证
form.verify({
username: function(value, item){ //value:表单的值、item:表单的DOM对象
if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
return '用户名不能有特殊字符';
}
if(/(^\_)|(\__)|(\_+$)/.test(value)){
return '用户名首尾不能出现下划线\'_\'';
}
if(/^\d+\d+\d$/.test(value)){
return '用户名不能全为数字';
}
},
password: [/^[\S]{6,12}$/, '密码必须6到12位,且不能出现空格'],
repass: function(value){
if($('input[name="password"]').val()!==value){
return '两次密码输入不一致';
}
}
});
上面的代码实现了自定义表单验证,其中规定了用户名不能有特殊字符,用户名首尾不能出现下划线,用户名不能全为数字等规则,此外还规定了密码必须6到12位,且不能出现空格等规则,最终对于密码的验证规则使用了正则表达式。这些验证规则可以在表单提交时生效。
3.4. 表单提交
表单提交是表单的核心操作,layui中提供了form.on('submit')方法实现表单提交功能,代码示例如下:
//监听表单提交事件
form.on('submit(formDemo)', function(data){
//在这里进行表单提交操作
layer.msg(JSON.stringify(data.field));
return false;
});
上面的代码监听了表单提交事件,并在表单提交时弹出一个提示框,显示了表单提交的数据。最后,return false语句保证了表单不会自动提交。
4. 总结
通过上面的介绍,我们可以看到,layui中的form表单不仅提供了丰富的表单元素展示方式,还提供了丰富的表单操作方法,使用户能够更方便地操作表单。与此同时,不同的表单元素和方法之间可以无缝衔接,使得开发者可以更高效地编写代码。因此,layui中的form表单是一个非常实用的前端UI模块。