复选框

CreateTime--2017年6月5日14:04:55
Author:Marydon

五、复选框

  (一)语法

    <input type="checkbox" />  

  (二)点击当前行改变复选框的选中状态

  第一部分:HTML

<table style="width: 100%; border-collapse: collapse;" cellspacing="0" cellpadding="1" border="0" width="100%">
<tbody>
<tr class="TableHeader" align="center">
<td class="TableHeaderCell" style="width: 25px">
<input type="checkbox" id="checkSelect" onclick="javascript:checkSelected('checkSelect','CONSULT_SCHEDULE_ID_TEMP');" />
</td>
<td class="TableHeaderCell" style="width: 35px">项次</td>
<td class="TableHeaderCell" nowrap="nowrap">
星期
</td>
<td class="TableHeaderCell" nowrap="nowrap">
午别
</td>
</tr>
<tr class="TableRow" oldclass="TableRow" align="center"
key="${row.CONSULT_SCHEDULE_ID}"
onclick="javascript:RowSelect(this,'downRow');GetSelect(event,'downRow');"
onmouseover="javascript:if (this.className!='TableRowSelected') this.className='TableRowOver'"
onmouseout="javascript:if (this.className!='TableRowSelected') this.className='TableRow'">
<td class="TableCellIndex" nowrap="nowrap">
<input type="checkbox" name="CONSULT_SCHEDULE_ID_TEMP"
CLOSE_TZ="${row.CLOSE_TZ}" REPLACE_TZ="${row.REPLACE_TZ}"
value="${row.CONSULT_SCHEDULE_ID}"/>
</td>
<td class="TableCellIndex" nowrap="nowrap">
1
<input type="hidden" value="${row.ORG_CODE}"/>
</td>
<td nowrap="nowrap" class="TableCell" align="left">
星期一
</td>
<td nowrap="nowrap" class="TableCell" align="left">
上午
</td>
</tr>
<tr class="TableRow" oldclass="TableRow" align="center"
key="${row.CONSULT_SCHEDULE_ID}"
onclick="javascript:RowSelect(this,'downRow');GetSelect(event,'downRow');"
onmouseover="javascript:if (this.className!='TableRowSelected') this.className='TableRowOver'"
onmouseout="javascript:if (this.className!='TableRowSelected') this.className='TableRow'">
<td class="TableCellIndex" nowrap="nowrap">
<input type="checkbox" name="CONSULT_SCHEDULE_ID_TEMP"
CLOSE_TZ="${row.CLOSE_TZ}" REPLACE_TZ="${row.REPLACE_TZ}"
value="${row.CONSULT_SCHEDULE_ID}"/>
</td>
<td class="TableCellIndex" nowrap="nowrap">
2
<input type="hidden" value="${row.ORG_CODE}"/>
</td>
<td nowrap="nowrap" class="TableCell" align="left">
星期二
</td>
<td nowrap="nowrap" class="TableCell" align="left">
下午
</td>
</tr>
</tbody>
</table>

  第二部分:CSS

.TableHeader {
clear: both;
height: 30px;
line-height: 30px;
} .TableHeaderCell {
height: 100%;
line-height: 21px;
color: #999;
text-indent: 3px;
border: #CECECE 1px solid;
cursor: pointer;
white-space: nowrap;
background-image: url(images/toolbar.gif);
} .TableRow {
height: 21px;
background-color: #ffffff;
} .TableRowOver {
cursor: pointer;
height: 21px;
background-color: #f4f4f4;
} .TableRowSelected {
cursor: pointer;
height: 21px;
background-color: #f4f4f4;
} .TableCell {
height: 25px;
line-height: 25px;
text-indent: 3px;
color: #555;
border-right: #CECECE 1px solid;
border-bottom: #CECECE 1px solid;
cursor: pointer;
} .TableCellIndex {
line-height: 21px;
color: #000;
border: #CECECE 1px solid;
}

  第三部分:JAVASCRIPT

/**
* 点击行、复选框 改变复选框的选中状态
* @param {Object} event
* 必要参数:目标源事件
* @param {string} rowName
* 可(必)要参数:行名称
* 该参数是否必选,取决于调用RowSelect()方法时,是否携带第二个参数,即(同步):
* 若携带第二个参数,都必须携带,并必须保持一致;
* 若不携带,都不携带
* @describe:
* a.改变选中状态分为两种:点击行改变;点击复选框改变;
* b.如何区分两种点击状态?
* checkboxObj==srcObj ? 点击的是复选框 : 点击的是行;
*/
function GetSelect(event,rowName) {
// 获取当前行对象
var rowObj = rowName ? (window[rowName]) : window.row;
// 获取该行tr的第一个td里面的复选框
var checkboxObj = $(rowObj).find(':checkbox')[0];
// 点击事件源对象
var srcObj = event.srcElement ? event.srcElement : event.target;
// 获取当前行所在的table
var tableObj = $(srcObj).parents('table')[0];
// 判断条件
var flag = (checkboxObj != srcObj) ? (!checkboxObj.checked) : checkboxObj.checked; if (flag) {
// 获取当前table有多少行
var rowsLength = tableObj.rows.length;
//
rowsLength = (checkboxObj != srcObj) ? (rowsLength - 2) : (rowsLength - 1);
// 获取页面上有多少个 name=checkboxObj.name 选中的复选框
var checkboxLength = $('[name='+ checkboxObj.name + ']:checked').length;
if (rowsLength == checkboxLength){
// 选中 当前行所在table的第一个复选框
$(tableObj).find(':checkbox')[0].checked = true;
}; } else {
// 取消勾选 当前行所在table的第一个复选框
$(tableObj).find(':checkbox')[0].checked = false;
} // 改变当前行的复选框选中状态:如果没选中,就选中;已经选中,就取消选中
if (checkboxObj != srcObj) {
checkboxObj.checked = !checkboxObj.checked;
} }; /**
* 全选,全不选
* @describe
* 根据主复选框的选中状态同步改变子复选框的选中状态
* @param {string} checkedId
* 必要参数:主复选框的id
* @param {string} checkedTagName
* 必要参数:子复选框的name
*/
function checkSelected(checkedId,checkedTagName) {
// 获取所有的子复选框标签
var checkTags = $('[name='+ checkedTagName +']');
// 获取主复选框的选中状态
var checkedStatus = $('#' + checkedId)[0].checked; for (var i = 0; i < checkTags.length; i++) {
checkTags[i].checked = checkedStatus;
}
}; /**
* 选中当前行
* @param {Object} row
* 必要参数,当前行对象
* @param {string} name
* 可选参数,行名称,
* 当页面只有一个这样的table时(点击该行就选中),调用该方法时可以不传该参数
* 当页面有多个这样的table时,用于区分。
*/
function RowSelect(row, name) {
if(!name) name = "row";
if(window[name]) {
window[name].className = window[name].getAttribute("oldClass");
}
row.className = "TableRowSelected";
window[name] = row;
}

  (三)通过复选框实现批量操作(删除、更改)  

  接着上面

/**
* 停诊
*/
this.updateCloseStatus = function () { // 主键
var CONSULT_SCHEDULE_ID = "";
// 获取页面上已勾选的复选框
var checkTags = $('input[name=CONSULT_SCHEDULE_ID_TEMP]:checked'); if (checkTags.length < 1) {
Dialog.Alert("消息提示", "请选择要修改的行!", null, null, 100);
return;
} // 取值并拼接成字符串
$(checkTags).each(function(i,item) {
if (0 == $(item).attr('CLOSE_TZ')) {
Dialog.Alert("消息提示", "请取消勾选已停诊的行!", null, null, 100);
return;
}
// 字符串拼接:由于数据库中该表的id是字符串,所以需要拼接上引号'
CONSULT_SCHEDULE_ID += "'" + $(item).val() + "'" + ","; }); // 去除最后一个逗号
CONSULT_SCHEDULE_ID = CONSULT_SCHEDULE_ID.slice(0, -1);
// 或CONSULT_SCHEDULE_ID = CONSULT_SCHEDULE_ID.substring(0,CONSULT_SCHEDULE_ID.length - 1); Dialog.Confirm("消息提示", "确定停诊吗?", function() {
var param = "";
// 是否停诊-0:是 1:否
param ="CONSULT_SCHEDULE_ID=" + CONSULT_SCHEDULE_ID + "&CLOSE_TZ=0"; // 发送Ajax请求
var request = new $WebRequest(baseUrl
+ "/telemedicine/remoteCons/schedule/updateCloseStatus.do", param, function(result) {
// 对返回的json数据进行解析
getJsonResult(result, function() {
// 操作成功/异常信息
Dialog.Alert("消息提示", result.msg, function() {
// 刷新页面
object.loadData($get("PageIndex").value);
}, null, 100);
});
});
request.Start();
}, null, null, 100, window);
};

  说明:

    1.批量操作的实现依赖于:复选框的选中状态及Ajax实现;

    2.Dialog对象是封装好的方法;

    3.后台及SQL实现见文章:IBATIS + ORACLE(二)。

      

相关推荐:

 

复选框input:checkbox的更多相关文章

  1. 关于复选框input[type=checkbox]

    关于复选框input[type=checkbox],其实在前面的文章中说过一次,当时主要关注点在设置复选框的状态,利用prop实现,今天继续关注一下复选框. 自己在项目中,遇到一个全选/全不选的需求, ...

  2. 你见过吗?9款超炫的复选框(Checkbox)效果

    复选框(Checkbox)在各个浏览器中的效果不一致,因此很多 Web 开发人员会自己重新设计一套界面和使用体验都更佳的复选框功能.下面就给大家分享9款超炫的复选框(Checkbox)效果,纯 CSS ...

  3. 自动化测试基础篇--Selenium单选框(Radio)复选框(CheckBox)

    摘自:https://www.cnblogs.com/sanzangTst/p/7686602.html 一.什么是单选框.复选框? 二.单选框:radio 三.复选框:checkbox 四.判断是否 ...

  4. 单选按钮(RadioButton)与复选框(CheckBox)的功能与用法

    单选按钮(RadioButton)和复选框(CheckBox).状态开关按钮(ToggleButton)与开关(Switch)是用户界面中最普通的UI组件,他们都继承了Button类,因此都可直接使用 ...

  5. 表单复选框input[type="checkbox"]

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  6. jQuery对复选框(checkbox)的全选,全不选,反选等的操作

    效果截图: HTML代码: <body><ul id="list"> <li><label><input type=" ...

  7. Spring MVC-表单(Form)标签-复选框(Checkbox)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_checkbox.htm 说明:示例基于Spring MVC 4.1.6. 以下示 ...

  8. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:复选框(Checkbox)和单选框(Radio)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 原创:纯CSS美化单复选框(checkbox、radio)

    最重要的一点,隐藏选择框本身.不多说了,上代码: <!doctype html> <html> <head> <meta charset="utf- ...

随机推荐

  1. PHP abstract与interface之间的区别

    1.php 接口类:interface 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口 ...

  2. 线段树+扫描线【p1884】[Usaco12FEB]过度种植(银)Overplanting …

    Description 在一个笛卡尔平面坐标系里(则X轴向右是正方向,Y轴向上是正方向),有\(N(1<=N<=1000)\)个矩形,第i个矩形的左上角坐标是\((x1, y1)\),右下 ...

  3. Delphi 7生成XML

    文件格式为: Day 制1課 U12 ASSY01 Wrist 1009 0 2018/05/18 09:35:59 Day 制1課 U12 ASSY02 Wrist 1010 0 2018/05/1 ...

  4. 109.关路灯(区间dp)

    1258 关路灯  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解 查看运行结果 题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每 ...

  5. 使用jQuery操作dom(追加和删除样式-鼠标移入移出)练习

    1.实现鼠标移入则添加背景色,鼠标移出则删除背景色 <!DOCTYPE html> <html> <head> <title>test1.html< ...

  6. Asp.Net MVC part2 View、Controller详解

    View详解Razor视图引擎简介HtmlHelper强类型页面 Razor视图引擎简介强大的@:表示使用C#代码,相当于aspx中的<%%>可以完成输出功能当遇到html标签时会认为C# ...

  7. IntelliJ IDEA字符串常量长度太长的问题解决:constant string too long

    Java compiler下的Use compiler为Eclipse:

  8. 在C#中快速查询文件

    相信使用过Everything的人都对其超快的搜索速度印象非常深刻,它的主要原理是通过扫描NTFS磁盘的USN Journal读取的文件列表,而不是磁盘目录,由于USN Journal非常小,因此能实 ...

  9. linux tail 命令详解!Linux 文件内容查看工具介绍

    转:http://blog.csdn.net/carzyer/article/details/4759593 1.cat 显示文件连接文件内容的工具: cat 是一个文本文件查看和连接工具.查看一个文 ...

  10. CSS3:绘制图形

    CSS画图形,基本上所有的实现都是对边框的角度的调整及组合. 以下不包含兼容浏览器的前缀,请使用时在border-radius前加-moz-.-webkit- .... 1.正常得不得了的矩形 .sq ...