2019-08-07

layui 常用操作

一、index(管理)页面

1.渲染数据表格

html:

<tableclass="layui-hide"id="demo"lay-filter="demo"></table>

<scripttype="text/html"id="barDemo">

<aclass="layui-btn layui-btn-xs"lay-event="edit">修改</a>

<aclass="layui-btn layui-btn-xs"lay-event="del">删除</a>    

</script>

js:

table.render({

elem:'#demo'

,url:'{$site_url}/admin/index.php?app=coupon&act=coupon_getAll'

,limits: [20,40,60,80]

,limit:20

,cols: [[

// { type: 'checkbox' }

{field:'coupon_id',title:'优惠券id',sort:true}

, {field:'store_name',title:'店铺名称'}

, {field:'store_id',title:'店铺id',hide:true}

, {field:'coupon_name',title:'优惠券名称'}

, {field:'coupon_value',title:'优惠券金额'}

, {field:'reg_date',title:'开始时间'}

, {field:'end_time',title:'结束时间'}

, {field:'min_amount',title:'最小使用价格'}

, {field:'coupon_num',title:'优惠券数量'}

, {field:'number',title:'已领优惠券数量'}

, {field:'if_issue',title:'是否发布',templet:function(d) {if(d.if_issue==0) {return"否"; }else{return"是"} } }

, {fixed:'right',title:'操作',align:'center',toolbar:'#barDemo'}

           ]]

,page:true

       });

//监听行工具事件

table.on('tool(demo)',function(obj) {

vardata=obj.data;

varflag=obj.event;

if(flag=='edit') {

layer.open({

type:1,

title:"修改品牌信息",

area: ['1000px','700px'],

content:$("#popUpdateTest"),//引用的弹出层的页面层的方式加载修改界面表单

maxmin:true,

offset: [0]

               });

getStores("#stores");

coupon_id=data.coupon_id

console.log(coupon_id,123)

form.render('select');

setFormValue(obj,data);

}elseif(flag=='del') {

type="del";

layer.confirm('确定删除该产品吗?',function(index) {

//执行删除

console.log(index)

del(data.coupon_id);

layer.close(index)

location.reload();

               })

}else{

$("#suretype").html("您确认要拒绝通过吗?")

layer.open({

type:1

,title:'拒绝通过'

,area: ['390px','160px']

,shade:0

,maxmin:true

,offset: [0]

,content:$("#examine")

               });

brand_id=data.brand_id;

           }

       });

通过搜索按钮进行表格数据重载

//查询按钮

$(document).on('click','#ss',function() {//#ss为搜索按钮的id

varbrand=$("#brand_name");

varbrand_name=brand.val();

layui.use('table',function() {

vartable=layui.table;

table.reload('demo', {

url:'{$site_url}/admin/index.php?app=newstore&act=brand_list'

,where: {//设定异步数据接口的额外参数,任意设

brand_name,

           }

,page: {

curr:1//重新从第 1 页开始

           }

       });

   });

});

二、表单相关

1.通过jq赋值

//input的值

//获取:

vartag_name=$("#couponAddName").val()

//使,下拉框的option的value为xx的被选中

$("#all_scategory option[value="+store_data.cate_id+"]").prop("selected",true);

//给日期输入框赋值,赋值必须按照这种格式才能成功“2019-08-07”

document.getElementById("myDate").value="2019-08-07";

//单选框赋值/取值

$("input:[type='radio']").attr("checked",true);

$("input:[type='radio']").val()

//jq的属性赋值,可以用在img标签上

$("#now_img ").prop("src","{$site_url}"+"/"+data.brand_logo);

//多选框赋值

1.获取单个checkbox选中项(三种写法):

$("input:checkbox:checked").val()

或者

$("input:[type='checkbox']:checked").val();

或者

$("input:[name='ck']:checked").val();

2.获取多个checkbox选中项:

$('input:checkbox').each(function() {

if($(this).attr('checked')==true) {

alert($(this).val());

   }

});

3.设置第一个checkbox为选中值:

$('input:checkbox:first').attr("checked",'checked');

或者

$('input:checkbox').eq(0).attr("checked",'true');

4.设置最后一个checkbox为选中值:

$('input:radio:last').attr('checked','checked');

或者

$('input:radio:last').attr('checked','true');

5.根据索引值设置任意一个checkbox为选中值:

$('input:checkbox).eq(索引值).attr('checked', 'true');索引值=0,1,2....

或者

$('input:radio').slice(1,2).attr('checked','true');

6.选中多个checkbox:

同时选中第1个和第2个的checkbox:

$('input:radio').slice(0,2).attr('checked','true');

7.根据Value值设置checkbox为选中值:

$("input:checkbox[value='1']").attr('checked','true');

8.删除Value=1的checkbox:

$("input:checkbox[value='1']").remove();

9.删除第几个checkbox:

$("input:checkbox").eq(索引值).remove();索引值=0,1,2....

如删除第3个checkbox:

$("input:checkbox").eq(2).remove();

10.遍历checkbox:

$('input:checkbox').each(function(index,domEle) {

//写入代码

});

11.全部选中

$('input:checkbox').each(function() {

$(this).attr('checked',true);

});

12.全部取消选择:

$('input:checkbox').each(function() {

$(this).attr('checked',false);

});

2.表单赋值**

//日期表单

laydate.render({

elem:'#test'

,value:'2017-09-10'

,isInitValue:false//是否允许填充初始值,默认为 true

})

//其他表单

//name:value

functionsetFormValue(data) {//data是数据表格的toolbar按钮的obj.data

//表单初始赋值

form.val('example', {

"modules1":data.store_id

,"Coupon_name":data.coupon_name//

,"Coupon_money":data.coupon_value//优惠券金额

/* ,"test6": "data.reg_date+' - '+data.end_time"//优惠券时间 */

,"minPrice":data.min_amount//最小使用价格

,"release":data.if_issue//是否发布

,"Coupon_num":data.coupon_num//优惠券数量

       })

   }

3.获取form表单的值

请注意:如果不加载form模块,select、checkbox、radio等将无法显示,并且无法使用form相关功能

required:注册浏览器所规定的必填字段

lay-verify:注册form模块需要验证的类型

class="layui-input":layui.css提供的通用CSS类

html:

<form class="layui-form">

   <button id="btnSubmit" lay-filter="btnSubmit" lay-submit>保存</button>

</form>

js

form.on('submit(btnSubmit)', function (data) {

   //表单数据formData

   var formData = data.field;

});

4.表单的事件监听

具体语法:form.on('event(过滤器值)',callback);

可以用于监听:select,checkbox,switch,radio,submit的改变

一、监听select的改变

<!--不用form用div也可以-->

<formclass="layui-form">

<divclass="layui-form-item">

<labelclass="layui-form-label">下拉选择框</label>

<divclass="layui-input-block">

<selectname="interest"lay-filter="aihao">

<optionvalue="0">写作</option>

<optionvalue="1">阅读</option>

<optionvalue="2">听歌</option>

<optionvalue="4">游戏</option>

</select>

</div>

</div>

</form>

<scripttype="text/javascript"src="./layui/layui.js"></script>

<scripttype="text/javascript">

layui.use('form',function(){

varform=layui.form;

form.on('select(aihao)',function(data){

console.log(data);

console.log(data.elem);//得到select原始DOM对象

console.log(data.value);//得到被选中的值

console.log(data.othis);//得到美化后的DOM对象

   });

});

</script>

监听checkbox复选

form.on('checkbox(filter)',function(data){

console.log(data.elem);//得到checkbox原始DOM对象

console.log(data.elem.checked);//是否被选中,true或者false

console.log(data.value);//复选框value值,也可以通过data.elem.value得到

console.log(data.othis);//得到美化后的DOM对象

});

监听switch开关:

form.on('switch(filter)',function(data){

console.log(data.elem);//得到checkbox原始DOM对象

console.log(data.elem.checked);//开关是否开启,true或者false

console.log(data.value);//开关value值,也可以通过data.elem.value得到

console.log(data.othis);//得到美化后的DOM对象

});

监听radio单选:

form.on('radio(filter)',function(data){

console.log(data.elem);//得到radio原始DOM对象

console.log(data.value);//被点击的radio的value值

});

监听submit提交:

<buttonlay-submitlay-filter="*">提交</button>

form.on('submit(*)',function(data){

console.log(data.elem)//被执行事件的元素DOM对象,一般为button对象

console.log(data.form)//被执行提交的form对象,一般在存在form标签时才会返回

console.log(data.field)//当前容器的全部表单字段,名值对形式:{name: value}

returnfalse;//阻止表单跳转。如果需要表单跳转,去掉这段即可。

});

5.获取表单的innerHTML

//要jq和layui结合使用,先获取input的value,再用jq的属性选择器对value进行筛选并获取innerHTML

三、弹窗相关

1.confirm弹框

//监听表单的toolbar的删除按钮

if(flag=='del') {

type="del";

layer.confirm('确定删除该产品吗?',function(index) {

//执行删除

console.log(index)

del(data.coupon_id);

layer.close(index)

location.reload();

})

2.layer.open

layer.open({

type:1,

title:"修改品牌信息",

area: ['1000px','700px'],

content:$("#popUpdateTest"),//引用的弹出层的页面层的方式加载修改界面表单

maxmin:true,

offset: [0]

});

//打开其他的页面,并且要传参

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,738评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,377评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,774评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,032评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,015评论 5 361
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,239评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,724评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,374评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,410评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,457评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,132评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,733评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,804评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,022评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,515评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,116评论 2 341

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,026评论 0 2
  • 第一章 1.什么是DOM DOM: Document Object Model(文档对象模型) 是JavaScri...
    fastwe阅读 786评论 0 0
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,438评论 0 13
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,689评论 0 3
  • 今天吵了架,全身充满无力感……
    蓂蓼阅读 156评论 0 0