layui(五)——form组件常见⽤法总结
form 是我们⾮常看重的⼀块。layui中的form实现全⾃动的初始渲染,和基于事件驱动的接⼝书写⽅式。我整理了layui中form的配置。下边直接给⼀个栗⼦,后台采⽤ 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>
如何用css美化表单</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
//**********************************预设元素属性
lay-skin //只对checkbox有效,可选switch,primary
lay-filter //事件过滤器,⽤于匹配事件的准确性。不仅仅⽤于form
lay-verify //规则验证
lay-verType //不符合规则时显⽰风格,可选tips,alert,msg(默认)
lay-submit //绑定触发提交的元素
//*************************************事件监控
//监听的元素有select(选中) ,checkbox(勾选),swich(开关),radio(选择),submit(提交)
<('select(selectfilter)', function (data) {
console.log(data.elem); //原⽣Dom
console.log(data.value); //选中的option的value
console.his); //美化后Dom
})
<('radio', function (data) {
console.log(data.elem); //原⽣Dom
console.log(data.value); //选中的radio的value
console.his); //美化后Dom
})
//checkbox和switch是⼀样的
<('checkbox', function (data) {
console.log(data.elem); //原⽣Dom
console.log(data.elem.checked); //点击后的状态true,false console.his); //美化后的Dom })
//submit
<('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>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论