js checkbox radio

简介:

因为要兼容firefox和ie,所以在事件处理方面很费了些许时间,因此把心得和大家分享 
一、ie处理事件的机制   
采用事件冒泡策略,事件从最底层的element冒泡到最顶层的window,在事件函数里面获取事件对象 
用全局变量window.event就可以了,非常简单, 

二、firefox的事件的机制   
在firefox中,事件处理过程复杂一些,先采取事件传播机制,从最顶层的window到最底层的element,再冒泡回到最顶层的window 
事件对象是没有全局的,采用参数传到事件处理函数里面,获取方法有两种 
1.默认是事件处理函数的第一个参数,也是唯一的参数,这时,事件的处理函数必须动态添加,不能写到html标记里面 
function   check(aaa) 

        alert(aaa);   

<input   type=text   id= "txt1 "/> 
document.getElementById( "txt1 ").onclick   =   check;

2.可以在事件处理函数中显式的传递名为event的参数,这时事件处理函数写入html标记,并且可以传递自己的参数 
并且不能象上面第一种方式一样动态添加了 
function   check(str1,str2) 

        alert(str1); 
        alert(str2); 

<input   type=text   id= "txt1 "   onclick= "check( '111 ',event) "/>

Java代码   收藏代码
  1. /**  
  2. * 全选的所有指定名称的checkbox 
  3. *@state 全选的checkbox的状态 
  4. *@name   表格中的所有checkbox的名称 
  5. *@author fangtf 
  6. *@type void 
  7. */  
  8. function selectAll(state,name) {  
  9.     var ids = document.getElementsByName(name);  
  10.     for (var i = 0; i < ids.length; i++)   
  11.     {         
  12.             ids[i].checked = state;  
  13.     }  
  14. }  
  15.   
  16.   
  17. /**  
  18. * 全选的所有指定id名称的同名checkbox 
  19. *@state 全选的checkbox的状态 
  20. *@name   表格中的所有checkbox的名称 
  21. *@name   表格中的所有checkbox的id 
  22. *@author fangtf 
  23. *@type void 
  24. */  
  25. function selectAllCheckboxByID(state,name,id) {  
  26.     var ids = document.getElementsByName(name);  
  27.     for (var i = 0; i < ids.length; i++)   
  28.     {         
  29.             if(ids[i].id == id)  
  30.             {  
  31.                 ids[i].checked = state;  
  32.             }  
  33.               
  34.     }  
  35. }  
  36.   
  37. /**  
  38. * 全选页面上所有的checkbox 
  39. *@state 全选的checkbox的状态 
  40. *@author fangtf 
  41. *@type void 
  42. */  
  43. function selectAlls(state)   
  44. {  
  45.     var inputs = document.getElementsByTagName("input");  
  46.     for(var i =0;i<inputs.length;i++)  
  47.     {  
  48.         if(inputs[i].type == "checkbox")  
  49.         {  
  50.             inputs[i].checked =state;   
  51.         }  
  52.     }  
  53.   
  54. }  
  55.   
  56.   
  57. /** 
  58. *得到鼠标所单击的行 
  59. *@type Object 
  60. */  
  61. function GetRow(oElem) {  
  62.     while (oElem) {  
  63.         if (oElem.tagName.toLowerCase() == "tr" && oElem.parentElement.tagName.toLowerCase() == "tbody") {  
  64.             return oElem;  
  65.         }  
  66.         if (oElem.tagName.toLowerCase() == "table" || oElem.tagName.toLowerCase() == "th") {  
  67.             return false;  
  68.         }  
  69.         oElem = oElem.parentElement;  
  70.     }  
  71. }  
  72.   
  73. /**  
  74. * 全选当前行的checkbox 
  75. *@state 全选的checkbox的状态 
  76. *@author fangtf 
  77. *@type void 
  78. */  
  79. function selectRowCheckbox(state)  
  80. {  
  81.   var row = GetRow(window.event.srcElement);  
  82.   var cells = row.childNodes;   
  83.   for(var i=0;i<cells.length;i++)  
  84.   {  
  85.       var cell = cells[i].childNodes[0];  
  86.      if(cell.tagName == "INPUT")  
  87.      {  
  88.         cell.checked = state;  
  89.      }  
  90.   }  
  91. }  
  92.   
  93. /**  
  94. *选中指定值的Radio 
  95. *如:有两个radio, 
  96. *第一个的name="ids",value="1" 
  97. *第二个的name="ids",value="2" 
  98. *调用方法selectRadio("ids","1"); 
  99. *那么数值为1的Radio将被选中 
  100. *@name radio的名称 
  101. *@value radio的值 
  102. *@author fangtf 
  103. *@type void 
  104. */  
  105. function selectRadio(name,value) {  
  106.     var radioObject = document.getElementsByName(name);  
  107.     if(value === "")  
  108.     {  
  109.         radioObject[0].checked = true;  
  110.         return;  
  111.     }  
  112.     for (var i = 0; i < radioObject.length; i++)   
  113.     {  
  114.         if(radioObject[i].value == value)  
  115.         {  
  116.             radioObject[i].checked = true;  
  117.             break;  
  118.         }  
  119.           
  120.     }  
  121. }  
  122.   
  123.   
  124. /**  
  125. *选中指定值的checkbox 
  126. *如:有两个checkbox, 
  127. *第一个的name="ids",value="1" 
  128. *第二个的name="ids",value="2" 
  129. *第三个的name="ids",value="3" 
  130. *调用这个方法selectCheckbox("ids","1,2")那么数值为1,2的checkbox将被选中 
  131. *                 
  132. *@name 要选中的checkbox数组的名称 
  133. *@value 判断时候选中的值 
  134. *@author fangtf 
  135. *@type void 
  136. */  
  137. function selectCheckbox(name,value) {  
  138.     var checkObject = document.getElementsByName(name);  
  139.     var values = value.split(",");  
  140.     for(var j = 0; j < values.length; j++)  
  141.     {  
  142.         for (var i = 0; i < checkObject.length; i++)   
  143.         {  
  144.             if(checkObject[i].value == values[j])  
  145.             {  
  146.                 checkObject[i].checked = true;  
  147.                 break;  
  148.             }  
  149.         }  
  150.     }  
  151.       
  152. }  
  153.   
  154. /**  
  155. *选中指定值的select 
  156. *如:有一个名称为user的select 
  157. *<option value="0"></option> 
  158. *<option value="1"></option> 
  159. *调用这个方法selectOption("user","0")那么选项为0的选项就被选中 
  160. *                
  161. *@name  String  select的名称 
  162. *@value String  判断时候选中的值 
  163. *@author fangtf 
  164. *@type void 
  165. */  
  166. function selectOption(name,value)  
  167. {  
  168.      document.getElementsByName(name)[0].value=value;  
  169.   
  170. }  
 
相关文章
|
11月前
|
JavaScript
js 选取table中checkbox选中行的某一列
js 选取table中checkbox选中行的某一列
72 0
|
前端开发 JavaScript
前端:js根据CheckBox获得选中行的具体某些列内容(批量操作传多条数据)
前端:js根据CheckBox获得选中行的具体某些列内容(批量操作传多条数据)
142 0
|
JavaScript 前端开发
使用js操作checkbox
我们在项目中经常会遇到这个问题:使用js判断checkbox框是否被选中以及使用js对checkbox进行操作。 其实这些需求很简单,这里给出使用原生js和jQuery来完成这些需求。
1181 0
|
JavaScript 前端开发 数据安全/隐私保护
js之checkbox判断常用示例
checkbox常用示例可参考: 关于checkbox自动选中 checkbox选中并通过ajax传数组到后台接收 MP实战系列(十三)之批量修改操作(前后台异步交互) 本次说的是,还是关于智能门锁开锁方式。
1285 0
|
JavaScript 前端开发
js之radio应用实例
radio和checkbox还有select,可谓是前后端常用三剑客啊!特别是checkbox和select,关于这两个今天不讲,因为在下面这几篇文章,我已经比较详细的讲解了。 SpringMVC之ajax+select下拉框交互常用方式 checkbox选中并通过ajax传数组到后台接收 关于checkbox自动选中 今天主要讲解的是radio。
1152 0