Bootstrap开启模态框后对数据处理(标记模态框的开启与关闭状态)
JS用全局变量标记状态,方法中动态修改全局变量以标记状态是一个重要思想。
需求:组合条件查询数据,查询完之后填充到模态框中,开启模态框,模态框中有组合条件查询,此时查询只需要更新模态框表格数据不需要开启模态框,也就是让模态框开启方法执行一次。
(点查询的时候只更新数据不会再次开启模态框)
思想: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 + '" class="el_checks" /></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开启模态框后对数据处理(标记模态框的开启与关闭状态)的更多相关文章
- easyui弹框后销毁当前tab弹框不显示的解决方式
var id=$("#pageId").val(); var message = "{\"id\":" + id+ ",\&quo ...
- bootstrap折叠调用collapse()后data-parent不生效问题
今天做的项目,用到了bootstrap的折叠功能,这个功能需要只展开一个折叠框,点击一个就会自动隐藏另一个,初始按照API做了一下,发现一切运行正常,但是测试的同事提了一个bug,说切换到其他模块后再 ...
- 【代码笔记】iOS-点击搜索按钮,或放大镜后都会弹出搜索框
一, 效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> #import "CLHSearchBar.h ...
- jquery选中将select下拉框中一项后赋值给text文本框
jquery选中将select下拉框中一项后赋值给text文本框,出现无法将第一个下拉框的value赋值给文本框 因为select默认选中第一项..在选择第一项时,便导致无法激发onchange事件. ...
- 折腾iPhone的生活——iPhone 5s 开启 assistive touch 后卡顿的问题
刚刚入手我的国行iPhone5s土狗灰,感觉倍棒~ 但是一上手就发现了一个问题:卡顿. 卡顿不仅体现在日常使用中,游戏中更加严重,当我玩水果忍者的时候,会发现切水果的画面都变得不流畅起来,这是拥有64 ...
- .net 弹出消息框后,页面样式变乱
点击按钮,执行提交操作,弹出消息框后,页面的样式变乱,解决方法: 首先,确定使用的css样式正确,页面中的宽高值保持规范统一: 然后,弹出框避免使用Response.Write(),如下所示 Resp ...
- win10锁屏或睡眠一段时间后弹不出登录框
win10锁屏或睡眠一段时间后弹不出登录框 文:铁乐与猫 通常发生在win10更新到10周年版后发生,也就是会卡在登录状态,但不见输入登录框. 我出现这种情况的时候不是很严重,一般等久些也能出现,但问 ...
- 关于解决DevExpress用DevExpress patch工具破解后经常弹出试用框的问题
方法有效自己试过很棒!!!!!!!! 第一:破解工具:DevExpressComponents-14.1.4和破解工具 第二:解决DevExpress用DevExpress patch工具破解后经常弹 ...
- 鼠标点击input框后里面的内容就消失
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- 2012-2013 ACM-ICPC, NEERC, Central Subregional Contest C Sequence (打表)
打个表找找规律,到24445的时候乘2以后产生了0出现循环. 一般地,判断循环节是否存在可以用Floyd判圈算法. #include<bits/stdc++.h> using namesp ...
- excel数据导入到数据库
package test; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExceptio ...
- HDU - 4811 - Ball (思维)
题意: 给出一定数量的三种颜色的球,计算如何摆放得到值最大(有一定顺序) 有三种摆放方法 1.如果放的是第一个(桌子上原来没有),数值不变 2.如果在末尾追加一个,那么增加前面不同颜色的个数的值 3. ...
- Linux三剑客之sed详解(1)
sed (stream editor 流编辑器简写 ) ,用于过滤和转换文本 synopsis sed [option] ... {script-only-if-no-other-script} [i ...
- Cassandra 数据库安装部署
安装版本 cassandra-3.11.4 系统版本 more /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 准备工作 Cassan ...
- django第13天(auth组件,forms组件,中间件,csrf)
django第13天(auth组件,forms组件) auth组件 -auth组件 -auth是什么? -django内置的用户认证系统,可以快速的实现,登录,注销,修改密码.... -怎么用? -( ...
- LeetCode(39) Combination Sum
题目 Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C w ...
- STM32开发笔记之——CMSIS DAP
都说开发stm32都是使用kail iar+jatg/swd的方式,然而arm公司已经开发出了CMSIS DAP的开源下载工具,全称是CoreSight Debug Access Port,网络上有大 ...
- 【14】PNG,GIF,JPG的区别及如何选
[14]PNG,GIF,JPG的区别及如何选 GIF: 8位像素,256色 无损压缩 支持简单动画 支持boolean透明 适合简单动画 JPEG: 颜色限于256 有损压缩 可控制压缩质量 不支持透 ...
- 【04】在webstorm里Export declarations are not supported by current JavaScript version
[04]在webstorm里Export declarations are not supported by current JavaScript version Export declara ...