热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

layui实现类似于bootstrap的模态框功能

以前习惯了bootstrap的模态框,突然换了layui,想的用layui实现类似于bootstrap的模态框功能。用到了layui的layer模块,例如:<!D

  

  以前习惯了bootstrap的模态框,突然换了layui,想的用layui实现类似于bootstrap的模态框功能。

 

用到了layui的layer模块,例如:

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
    <link rel="stylesheet" href="./layui/css/layui.css">

    <script type="text/Javascript" src="./layui/layui.js">script>
    <script type="text/Javascript" src="../JS/jquery-1.8.3.js">script>
    <script>

        function openModak(){
            $("[name='testname']").val("xxxxxxxxxxxxxxx");//向模态框中赋值
            layui.use(['layer'],function () {
                var layer = layui.layer,$=layui.$;
                layer.open({
                    type:1,//类型
                    area:['400px','300px'],//定义宽和高
                    title:'查看详细信息',//题目
                    shadeClose:false,//点击遮罩层关闭
                    content: $('#motaikunag')//打开的内容
                });
            })
        }
    script>

head>
<body>

<button type="button" onclick="openModak()">开启模态框button>

body>
html>


<div id="motaikunag" style="display: none;">
    <div class="layui-row">
        <div class="layui-col-md9">
            你的内容 9/12
        div>
        <div class="layui-col-md3">
            你的内容 3/12
        div>
    div>
    <div class="layui-row">
        <div class="layui-col-md3">
            名字
        div>
        <div class="layui-col-md9">
            <input type="text" name="testname" value="">
        div>
    div>

    <br/>
    <input type="button" onclick="Javascript:alert('点击按钮')" title="点我" value="点我">
div>

 

 

结果:

 

 

 

 

type - 基本层类型:

类型:Number,默认:0

layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)。 若你采用layer.open({type: 1})方式调用,则type为必填项(信息框除外)

content - 内容

类型:String/DOM/Array,默认:''

content可传入的值是灵活多变的,不仅可以传入普通的html内容,还可以指定DOM,更可以随着type的不同而不同。譬如:

/!*
 如果是页面层
 */
layer.open({
  type: 1, 
  content: '传入任意的文本或html' //这里content是一个普通的String
});
layer.open({
  type: 1,
  content: $('#id') //这里content是一个DOM,注意:最好该元素要存放在body最外层,否则可能被其它的相对元素所影响
});
//Ajax获取
$.post('url', {}, function(str){
  layer.open({
    type: 1,
    content: str //注意,如果str是object,那么需要字符拼接。
  });
});
/!*
 如果是iframe层
 */
layer.open({
  type: 2, 
  content: 'http://sentsin.com' //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']
}); 
/!*
 如果是用layer.open执行tips层
 */
layer.open({
  type: 4,
  content: ['内容', '#id'] //数组第二项即吸附元素选择器或者DOM
});        
    

 

 

补充:如果想更好的设置宽度,可以:

    layui.use(['layer'],function () {
        var layer = layui.layer;
        var  width=($(window).width()*0.80);
        var height=($(window).height()*0.60);
        layer.open({
            title:'添加字典',
            area: [width+'px', height +'px'],//大小
            fix: false, //不固定
            maxmin: true,
            shadeClose: false,
            shade:0.4,
            type:1,
            content:$('#addModal')
        });
    })

 

 

为了实现更好的模态框效果,我们可以设置样式:

HTML:


<%--隐藏打开的index--%>
<input type="hidden" id="hidden_update_index">
<div class="x-body" style="display: none" id="updateModal">
    <form class="layui-form" id="updateDictionaryForm">
        
        <div class="layui-form-item">
            <label for="dictionaryname" class="layui-form-label">
                上级字典
            label>
            <div class="layui-input-inline">
                <input type="text" id="update_updictionaryname"  disabled  class="layui-input" value="">
                <%--隐藏需要修改的字典编号--%>
                <input type="hidden" name="dictionaryid" id="update_dictionaryid">
            div>
        div>

        
        <div class="layui-form-item">
            <label for="dictionaryname" class="layui-form-label">
                字典名称
            label>
            <div class="layui-input-inline">
                <input type="text" id="update_dictionaryname" name="dictionaryname" required="" lay-verify="required"
                       autocomplete="off" class="layui-input">
            div>
            <div class="layui-form-mid layui-word-aux">
                <span class="x-red">*span>必须填写
            div>
        div>
        
        <div class="layui-form-item layui-form-text">
            <label for="dictionaryname" class="layui-form-label">
                字典描述
            label>
            <div class="layui-input-inline">
                <input type="text"  name="description" lay-verify="required" id="update_description"
                       autocomplete="off" class="layui-input">
            div>
            <div class="layui-form-mid layui-word-aux">
                <span class="x-red">*span>必须填写
            div>
        div>
        <%--3.字典启用状态--%>
        <div class="">
            <label for="dictionaryname" class="layui-form-label">
                字典状态
            label>
            <div class="">
                <input type="radio"  name="isuse" class="update_isuse"  value="1" title="启用">
                <input type="radio"  name="isuse" class="update_isuse" value="0" title="禁用" >
            div>
        div>
        <%--提交按钮--%>
        <div class="layui-form-item">
            <button class="layui-btn" lay-submit lay-filter="updateDictionary" type="button">修改button>
        div>
    form>
div>

 

JS:

/*************S         修改字典相关操作************/
/**
 * 打开修改字典信息模态框
 * @param obj   将修改按钮自己传下来
 */
function openUpdateDict(obj){
    var tr= $(obj).parent().parent();//获取到tr元素
    var update_dictiOnaryid= tr.children("td:eq(0)").children("input:hidden").val();//字典变
    var update_dictiOnaryname= tr.children("td:eq(2)").text();//字典名称
    var update_updictiOnaryname= tr.children("td:eq(3)").text();//上级字典名称
    var update_description = tr.children("td:eq(4)").text();//字典描述
    var update_isuse = tr.children("td:eq(5)").children("input:hidden").val();//字典状态
    $("#update_dictionaryid").val(update_dictionaryid);
    $("#update_dictionaryname").val(update_dictionaryname);
    $("#update_updictionaryname").val(update_updictionaryname);
    $("#update_description").val(update_description);
/*    $(".update_isuse").each(function () {
       if($(this).val()==update_isuse){
           alert($(this).val())
           $(this).prop("chcked","checked");
       }
    });*/
    $(".update_isuse:radio").removeAttr("checked");//删除checked属性
    $(".update_isuse:radio[value='"+update_isuse+"']").attr("checked", true);
    form.render('radio'); //重新渲染radio单选框
    var  width=($(window).width()*0.80);
    var height=($(window).height()*0.70);
    var index = layer.open({
        title:'修改字典信息',
        area: [width+'px', height +'px'],//大小
        fix: true, //不固定
        maxmin: true,
        zIndex:500,
        shadeClose: false,
        shade:0.4,
        type:1,
        content:$('#updateModal')
    });
    //向页面隐藏index
    $("#hidden_update_index").val(index);
}

//监听修改表单的提交事件
layui.use(['layer','form'],function () {
    var layer = layui.layer,form = layui.form;
    form.on('submit(updateDictionary)', function(data){
        $.ajax({
            url:contextPath+"/dictionary/updateDict.do",
            data:data.field,
            type:'post',
            datatype:'text',
            success:function (response) {
                layer.msg(response,{time:1500},function () {
                    if("修改成功"==response){
                        layer.close($("#hidden_update_index").val()); //关闭当前窗口
                        window.location.reload();//刷新页面
                    }
                });
            }
        });
    });
})
/*************E         修改字典相关操作************/

 


推荐阅读
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • JS实现一键分享功能
    本文介绍了如何使用JS实现一键分享功能,并提供了2019独角兽企业招聘Python工程师的标准。同时,给出了分享到QQ空间、新浪微博和人人网的链接。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
  • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
  • jqueryajax怎么通过header传递参数?
    /这个是全局的ajax请求头设置,所有的ajax请求都会加上这个请求头 ... [详细]
  • PHP 如若要打开的文件名包含中文那么会报错
    后端开发|php教程nbsp,iconv,file,read,function后端开发-php教程PHP如果要打开的文件名包含中文那么会报错PHP如果要打开的文件名包含中文那么会报 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了解决IE678伪类不兼容问题的方法,包括少用CSS3和HTML5独有的属性,使用CSS hacker,使用last-child清除浮动、批量添加标签、去掉list item最后一个的border-right等技巧。同时还介绍了使用after清除浮动时加上IE独有属性zoom:1的处理方法。另外,本文还提到可以使用jQuery代替批量添加标签的功能,以及使用负边距和CSS2选择器element+element去掉list item最后一个的border-right的方法。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
author-avatar
dmcm0005
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有