form 是我们非常看重的一块。layui中的form实现全自动的初始渲染,和基于事件驱动的接口书写方式。我整理了layui中form的配置。下边直接给一个栗子,后台采用.net MVC,除了razor模板中用到了一点后台的内容,其他都是layui中的内容,这里就不粘后台代码了:

HTML文本

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>layui.form小例子</title>
<script src="~/Content/layui/layui.js"></script>
<link href="~/Content/layui/css/layui.css" rel="stylesheet" />
</head>
<body>
<form class="layui-form" action="/Home/AddUserInfo" method="get" lay-filter="formfilter">
<!-- 提示:如果你不想用form,你可以换成div等任何一个普通元素 -->
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-block">
<input type="text" name="Name" placeholder="请输入" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">下拉选择框</label>
<div class="layui-input-block">
<select name="Role" lay-filter="selectfilter">
@foreach (var item in ViewBag.RoleList)
{
<option value="@item.Id">@item.RoleName</option>
}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">爱好</label>
<div class="layui-input-block">
<input value="1" type="checkbox" name="LikeWrite" title="写作">
<input value="2" type="checkbox" name="LikeRead" title="阅读">
</div>
</div> <div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<input type="radio" name="Gender" value="0" title="男">
<input type="radio" name="Gender" value="1" title="女">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">请填写描述</label>
<div class="layui-input-block">
<textarea name="Descirpt" id="Descirpt" placeholder="请输入内容" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="gofilter">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>

JS脚本

    <script>
layui.use(['form', 'jquery', 'layer'], function () {
var form = layui.form;
var $ = layui.$;
var layer = layui.layer;
//可局部刷新的元素 select,radio,checkbox
form.render(); //刷新全部
form.render('select'); //刷新select选择框
form.render('select', 'selectfilter');//刷新layfilter为selectfilter1的select //**********************************预设元素属性
lay-skin //只对checkbox有效 ,可选switch,primary
lay-filter //事件过滤器,用于匹配事件的准确性。不仅仅用于form
lay-verify //规则验证
lay-verType //不符合规则时显示风格,可选tips,alert,msg(默认)
lay-submit //绑定触发提交的元素 //*************************************事件监控
//监听的元素有select(选中) ,checkbox(勾选),swich(开关),radio(选择),submit(提交)
form.on('select(selectfilter)', function (data) {
console.log(data.elem); //原生Dom
console.log(data.value); //选中的option的value
console.log(data.othis); //美化后Dom
}) form.on('radio', function (data) {
console.log(data.elem); //原生Dom
console.log(data.value); //选中的radio的value
console.log(data.othis); //美化后Dom
}) //checkbox和switch是一样的
form.on('checkbox', function (data) {
console.log(data.elem); //原生Dom
console.log(data.elem.checked); //点击后的状态true,false console.log(data.othis); //美化后的Dom
}) //submit
form.on('submit(gofilter)', function (data) {
console.log(data.field)
$.post('/Home/AddUserInfo', data.field, function (result) {
if (result.IsSuccess === 1) {
alert(result.Msg);
} else {
alert(result.Msg);
}
})
return false;//这里是拦截layui自带的提交
}) //*********************************表单验证
//required(必填项)phone(手机号)email(邮箱)url(网址)number(数字)date(日期)identity(身份证)
//也可以自定义,一个简单用户名密码的栗子:
form.verify({
validateUserName: [
/^[\S]{2,10}$/
, '用户名必须2到10位'
],
validateUserPass: [
/^[\S]{3,20}$/
, '密码必须为3到20位'
],
validateConfPass: function (value) {
var pass = $('#userPass').val();
if (value != pass) {
return '两次密码不一致';
}
},
}); //**********************************赋初值,当我们修改或者展示详情时可用
form.val("formfilter", {
"Name": "haha" // "name": "value"
, "Gender": 0 //对应radio的value值,
, "Role": 3 //对应select下option的value值
, "LikeRead": true //对应checkbox
, "Descirpt": "这里是用户描述哦" //放在textarea中
})
console.log($('#Descirpt').val() + "xxx") //获取textarea值的方式
});
</script>
</body>
</html>

:这是为了个人查找方便整理的文档,并没有总结完全,查看更多可访问官网http://www.layui.com/doc

layui(五)——form组件常见用法总结的更多相关文章

  1. layui(七)——rate组件常见用法总结

    layui中提供了rate组件,用法很简单,直接上代码. <div id="test1"></div> <script> layui.use(' ...

  2. layui(二)——layer组件常见用法总结

    layer是layui的代表作,功能十分强大,为方便以后快速配置这里对其常见用法做了简单总结 一.常用调用方式 //1.普通消息:alert(content,[options],[yesCallBac ...

  3. layui(四)——table组件常见用法总结

    table是 layui 最核心的组成之一.它用于对表格进行一些列功能和动态化数据操作,涵盖了日常业务所涉及的几乎全部需求.支持固定表头.固定行.固定列左/列右,支持拖拽改变列宽度,支持排序,支持多级 ...

  4. layui(三)——laypage组件常见用法总结

    laypage 的使用非常简单,指向一个用于存放分页的容器,通过服务端得到一些初始值,即可完成分页渲染.核心方法: laypage.render(options)  来设置基础参数. 一.laypag ...

  5. layui(六)——upload组件常见用法总结

    layui中提供了非常简单的文件上传组件,这里写了一个上传图片的栗子,上传成功后返回图片在服务器的路径,并设置为页面中img的src属性.因为上传十分简单,没什么可说的,就直接上代码了. html代码 ...

  6. layui(九)——flow组件常见用法总结

    该模块包含 信息流加载 和  图片懒加载  两大核心支持,无论是对服务端.还是前端体验,都有非常大的性能帮助.下边分别给出了这两种技术的使用方法 一.信息流加载 信息流加载的核心方法时  flow.l ...

  7. django框架中的form组件的用法

    form组件的使用 先导入: from django.forms import Form from django.forms import fields from django.forms impor ...

  8. Python - Django - form 组件基本用法

    普通 form 表单的处理: reg.html: <!DOCTYPE html> <html lang="en"> <head> <met ...

  9. layui(一)——layDate组件常见用法

    和 layer 一样,我们可以在 layui 中使用 layDate,也可直接使用 layDate 独立版,可按照实际需求来选择.options整理如下: layui.use('laydate', f ...

随机推荐

  1. Power Network POJ - 1459 网络流 DInic 模板

    #include<cstring> #include<cstdio> #define FOR(i,f_start,f_end) for(int i=f_startl;i< ...

  2. Yahoo Programming Contest 2019 补题记录(DEF)

    D - Ears 题目链接:D - Ears 大意:你在一个\(0-L\)的数轴上行走,从整数格出发,在整数格结束,可以在整数格转弯.每当你经过坐标为\(i-0.5\)的位置时(\(i\)是整数),在 ...

  3. Android stadio 生成项目 Plugin with id 'com.android.application' not found

    buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2. ...

  4. opencv 仿射变换

    import cv2 as cv import numpy as np img = cv.imread('../images/face.jpg') h, w = img.shape[:2] mat_s ...

  5. SCOI 2015 Day1 简要题解

    「SCOI2015」小凸玩矩阵 题意 一个 \(N \times M\)( $ N \leq M $ )的矩阵 $ A $,要求小凸从其中选出 $ N $ 个数,其中任意两个数字不能在同一行或同一列, ...

  6. Codeforces Round #429 (Div. 1) C. On the Bench(dp + 组合数)

    题意 一个长度为 \(n\) 的序列 \(A\) ,定义一个 \(1\) 到 \(n\) 的排列 \(p\) 是合法的,当且仅当 \(\forall i \in [1, n − 1], A_{p_i} ...

  7. Distinct Values(2018hdu多校第一场)

    给你一段长度为n的区间,然后在给你m个小区间,要求这m个小区间里的每个人都不能重复,请你输出字典序最小的方案. 我们可以开一个suf数组,表示我到我后面的不出现重复数字的区间至少需要到达的位置.所以对 ...

  8. linux(fedora) 第二课

    vi 文件名(一般模式 编辑模式 命令模式) 一般模式 (不可编辑 按 a,i,o可以切换为编辑模式): 1.删除n行:按下想删除的行数+dd 编辑模式(编辑模式 可以浏览,查找,编辑 按‘:” 可以 ...

  9. mysql 替换字符中部分字符,替换使用指定字符

    update table_name set name= replace(name,'我是','是');

  10. configure: error: no acceptable C compiler found in $PATH 问题解决

    解决办法: 安装GCC软件套件 [root@localhost ~]# yum install gccLoaded plugins: fastestmirrorLoading mirror speed ...