layui中form表单使用示例

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模块。