Bootstrap开启模态框后对数据处理(标记模态框的开启与关闭状态)

摘要:
JS使用全局变量来标记状态。在该方法中,动态修改全局变量以标记状态是一个重要的思想。模态框的一些重要事件:下表列出了模态框中要使用的事件关于解决方案:1.定义全局变量variable_open=false,out_open=false;//用于记录两个模态框是否打开。2.模态箱关闭事件:$3。查询数据并打开模式框:打开模式框后修改全局变量值/**S查询内部部门员工*/varqueryInnerEmployee=function(){varddepartments=$.text();//获取部门名称//如果未选择部门,则提醒您选择部门,否则查询{departments=departments.substring;$.val;ajaxQueryEmployeeIn;}否则{alert;return;}VarajaxQueryEmployeeIn=函数{$.ajax({url:contextPath+‘/exam_getEmployeeIns4Exam.action‘,数据:$(“#queryInnerForm”).serialize(),类型:'POST',数据类型:'json',成功:showEmployee模式,错误:function(){alert(“查询内部员工时出错!!!

JS用全局变量标记状态,方法中动态修改全局变量以标记状态是一个重要思想。

  需求:组合条件查询数据,查询完之后填充到模态框中,开启模态框,模态框中有组合条件查询,此时查询只需要更新模态框表格数据不需要开启模态框,也就是让模态框开启方法执行一次。

(点查询的时候只更新数据不会再次开启模态框)

Bootstrap开启模态框后对数据处理(标记模态框的开启与关闭状态)第1张

  思想:JS设置一全局变量,在手动开启模态框之后修改全局变量的值,此时调用查询方法不会执行开启模态框方法;在手动关闭的时候将全局变量置为初值,可以在查询的时候再次开启模态框。

模态框的一些重要事件:

下表列出了模态框中要用到事件。这些事件可在函数中当钩子使用。

show.bs.modal在调用 show 方法后触发。
$('#identifier').on('show.bs.modal', function () {
  // 执行一些动作...
})
shown.bs.modal当模态框对用户可见时触发(将等待 CSS 过渡效果完成)。
$('#identifier').on('shown.bs.modal', function () {
  // 执行一些动作...
})
hide.bs.modal当调用 hide 实例方法时触发。
$('#identifier').on('hide.bs.modal', function () {
  // 执行一些动作...
})
hidden.bs.modal当模态框完全对用户隐藏时触发。
$('#identifier').on('hidden.bs.modal', function () {
  // 执行一些动作...
})

解决方法:

1.定义全局变量

var inner_open = false, out_open = false;// 用于记录两个模态框是否打开

2.模态框关闭事件:(全局变量置为初值)

复制代码
$(function() {
    // 内部模态框关闭的时候将标志字段设为false
    $('#innerEmployeeModal').on('hidden.bs.modal', function() {
        inner_open = false;
    });
    // 外部模态框关闭的时候将标志字段设为false
    $('#outEmployeeModal').on('hidden.bs.modal', function() {
        out_open = false;
    });
})
复制代码

3.查询数据与开启模态框:开启模态框后修改全局变量值

复制代码
/** *S 查询内部部门员工 */
var queryInnerEmployee = function() {
    var departments = $("#el_chooseDepart1").text();// 获取部门名字
    // 如果没有选择部门提醒选择部门,否则查询
    if (departments.length > 0) {
        departments = departments.substring(0, departments.length - 1);
        $("input[name='queryInnerEmployeesCondition.departments']").val(
                departments);
        ajaxQueryEmployeeIn(departments);
    } else {
        alert("至少选择一个部门");
        return;
    }
}

var ajaxQueryEmployeeIn = function(departments) {
    $.ajax({
        url : contextPath + '/exam_getEmployeeIns4Exam.action',
        data : $("#queryInnerForm").serialize(),
        type : 'POST',
        dataType : 'json',
        success : showEmployeeInModal,
        error : function() {
            alert("查询内部员工出错!!!")
        }
    });
}
function showEmployeeInModal(response) {
    // alert(JSON.stringify(response));// 转换为JSON串输出
    $("#innerEmployeeTable").html("");
    var examEmployeeIns = response.examEmployeeIns;
    for (var i = 0, length = examEmployeeIns.length; i < length; i++) {
        var sex = examEmployeeIns[i].sex == '1' ? "男" : "女";
        var trainInt = examEmployeeIns[i].trainStatus;
        var tarinStr;
        if (trainInt == 0) {
            tarinStr = "一级也未考";
        }
        if (trainInt == 1) {
            tarinStr = "通过一级考试";
        }
        if (trainInt == 2) {
            tarinStr = "通过二级考试";
        }
        if (trainInt == 3) {
            tarinStr = "通过三级考试";
        }
        var tr_inner = '<tr><td>'
                + '<input type="checkbox" name="employeeIn" value="'
                + examEmployeeIns[i].idCode + '"   /></td><td>'
                + examEmployeeIns[i].name + '</td><td>' + sex + '</td><td>'
                + examEmployeeIns[i].idCode + '</td>' + '<td>'
                + examEmployeeIns[i].departmentName + '</td><td>' + tarinStr
                + '</td></tr>';
        $("#innerEmployeeTable").append(tr_inner);
    }
    // alert(JSON.stringify(data));//转换为JSON串输出
    // 如果模态框未打开就打开模态框并设置标志字段为已打开
    if (!inner_open) {
        $("#innerEmployeeModal").modal({
            backdrop : 'static',
            keyboard : false
        });
        inner_open = true;
    }

}
复制代码

免责声明:文章转载自《Bootstrap开启模态框后对数据处理(标记模态框的开启与关闭状态)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Webview 与h5的交互纯CSS3魔方的制作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

大数据技术概论(纯理论)

大数据概念 大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发现力和流程优化能力的海量,高增长率和多样化的信息资产 优点: Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理 Hadoop 是可靠的,因...

【流数据处理】MySql/PG/Oracle+Kafka+Flink(CDC捕获) 部署及实时计算

主要介绍实时数仓得部署、计算 文章主要分3部分 数据采集 $color{red}{[E]}$ 关系型数据库MySql/PG/Oracle+Debezium+Kafka Connector 数据计算 $color{red}{[T]}$ Flink 数据存储 $color{red}{[L]}$ 传输,关系型数据库/列式数据库 clickhouse/hbase...

Hadoop对小文件的解决方式

小文件指的是那些size比HDFS的block size(默认64M)小的多的文件。不论什么一个文件,文件夹和block,在HDFS中都会被表示为一个object存储在namenode的内存中, 每一个object占用150 bytes的内存空间。 所以,假设有10million个文件, 每一个文件相应一个block,那么就将要消耗namenode 3G...

[Spark]-Streaming-调优

1.概述   Spark Streaming的主要应用方向是实时计算.这代表一个Spark Streaming应用必然是对执行性能和运行稳定性(7 x 24)有一定要求的 2.性能   在性能方面,主要是合理的利用的集群资源,设置正确的批处理大小(提升并行度)和减少每个批次的处理时间(计算逻辑优化).以让数据流处理的能像接受一样快   2.1 调整Spar...

疫情数据背后,聊聊数据分析平台变迁史

今年年初这场突如其来的疫情,让我们早晨醒来打开手机的第一件事情,从刷朋友圈变成了刷每日最新的疫情数据。看看国内外新增确诊人数/现存确诊人数,看看国内外疫情分布的地图。各大新闻平台也因为快速上线疫情实时动态板块,成为了大家了解疫情发展的阵地。 其实,在这背后是有着一个海量数据分析的架构平台做支撑。 对于很多企业的管理人员而言,这就是个很熟悉的T+1计算T日...

json数据处理技巧(字段带空格、增加字段)

1、json数据的正常取值:json[i].fieldName 2、json数据的字段带空格:eval('json[' + i + ']["' + field + '"]') 3、json数据的赋值:eval('json[' + i + ']["' + field + '"]=' + jsonFilter.length); 4、json数据增加字段:循环...