📄 checkbox_test.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> JSP+Ajax 添加删除Checkbox实例 example test</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript">
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
//cody by jarry;
var emptyCol="",overCol="#f1f1f1",checkedCol="#F4FFF4";
function getAbsoluteLeft( ob ){
if(!ob){return null;}
var obj = ob;
var objLeft = obj .offsetLeft;
while( obj != null && obj .offsetParent != null && obj .offsetParent.tagName != "BODY" ){
objLeft += obj .offsetParent.offsetLeft;
obj = obj .offsetParent;
}
return objLeft ;
}
// get absolute TOP position
function getAbsoluteTop( ob ){
if(!ob){return null;}
var obj = ob;
var objTop = obj .offsetTop;
while( obj != null && obj .offsetParent != null && obj .offsetParent.tagName != "BODY" ){
objTop += obj .offsetParent.offsetTop;
obj = obj .offsetParent;
}
return objTop ;
}
String.prototype.trim = function()
{ return this.replace(/(^\s*)|(\s*$)/g, "");}
function isExist(child,obj){
//obj has element the child;
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
//alert(obj.elements[i].value.trim() +" | "+ child.trim());
if(obj.elements[i].value.trim() == child.trim() )return true;
}
}
return false;
}
function validateURL(url){
//validateURL
if(url.search(/^[A-Za-z0-9 -]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/)!=0){
return false;
//}else if(url.substring(0,4)=="www."){
//网址不要前面的www.,如果没用的话可以注释掉;
//return false;
}else{
return true;
}
}
function countLength(obj){
if(obj==null)return;
var dLen = 0,sLen = 0;
for(i=0; i< obj.length; i++ ){
if(obj.charCodeAt(i) > "0" && obj.charCodeAt(i) < "128")
sLen+=1;
else
dLen+=2;
}
totalLen = sLen+dLen;
return totalLen;
}
var strAll=unescape("%u5168%u9009");
var canAll=unescape("%u53D6%u6D88");
function clickchk(obj){
var allcheck=true;
for(var i=0;i<obj.elements.length;i++){
var eli = obj.elements[i];
if(eli.tagName.toLowerCase()=="input" && eli.type=="checkbox"){
eli.parentNode.style.backgroundColor = eli.checked ? checkedCol :"";
if(eli.checked==false){allcheck=false;}
}
}
obj.elements["check"].value=allcheck?canAll:strAll;
}
function addSite(obj){
var url=obj.url.value.trim();
if(url.match(/^\s*$/g) || !validateURL(url)){alert("请输入正确网址:如mysite.com");obj.url.focus();return;}
if(isExist(url,obj)){alert("你添加的网址已经存在列表中");return;}
var list=document.getElementById("list");
var chkbox=document.createElement("input");
chkbox.type="checkbox";
chkbox.onclick=function(){clickchk(obj);}//全部选择后check按钮显示取消;
chkbox.value=url;
chkbox.name="url_chkbox";
var hr=document.createElement("hr");
hr.size="0";hr.style.borderTop="1px solid gray";
var txt=document.createTextNode(url);
var div=document.createElement("div");
div.appendChild(chkbox);
div.appendChild(txt);
div.style.borderBottom="1px dashed gray";
div.style.padding="5px";
//div.appendChild(hr);
//div.style.backgroundColor = "olive";
div.onmouseover=function(){
showDelete(this);
}
div.onmouseout=function(){
hideDelete(this);
//alert("d");
}
//start add element;
list.appendChild(div);
//end add;
//如果已经添加了多选框则去掉禁用;
if(obj.check.disabled==true){
obj.check.disabled=false;
obj.recheck.disabled = false;
obj.remove.disabled=false;
}
return false;
}
function checkall(obj){//全选or取消全选;
var chk=obj.elements["check"];
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
if(chk.value==strAll){//check all checkbox input;
obj.elements[i].checked=true;
obj.elements[i].parentNode.style.backgroundColor = checkedCol;
}else{
obj.elements[i].checked=false;
obj.elements[i].parentNode.style.backgroundColor = emptyCol;
}
}
}
if($('list').childNodes.length<=1)return;
chk.value=chk.value==canAll?strAll:canAll;
//更改全选/取消的显示;
}
function reverseCheck(obj){
var chk=obj.elements["check"];
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
obj.elements[i].checked = obj.elements[i].checked ? false : true;
}
clickchk(obj);
}
}
function del(list,obj){
//删除list的内容
var candel=false;
var i=list.childNodes.length;
var end = -1;
while( i > end ){ //如果存在child
var s=list.childNodes[i];
if(typeof(s)!="undefined" && s.tagName){
try{ //如果child的类型不为空;
var tgname = s.tagName.toUpperCase();
if(tgname != "DIV" || s.childNodes.length <=0 )return;
//子集是div且还有子集
var s1 = s.childNodes[0];
if( s1.type.toLowerCase() =="checkbox" && s1.checked==true ){
//如果该子集里的checkbox选中,那么删除改子集(div);
candel = true;
list.removeChild(s);
}
}catch(ex){
//alert(ex.toString());
}
}
i--;
}
if(candel==false){alert("请选择你要删除的选项")}
isDisabledButton();
}
function isDisabledButton(){
var objform=document.sitelist;
var list=$("list");
var hasDivChild = false;
if(list.childNodes.length>0 ){
for(var i=0;i<list.childNodes.length;i++){
var s=list.childNodes[i];
if( typeof(s)!="undefined" && s.tagName) {
if(s.tagName.toUpperCase()=="DIV")
hasDivChild = true;
}
}
}
objform.check.disabled= hasDivChild?false:true;
objform.recheck.disabled= hasDivChild?false:true;
objform.check.value=strAll;
objform.remove.disabled= hasDivChild?false:true;
}
function delSingle(objparent,objdel,objchild){
objparent.removeChild(objchild);
objdel.style.display="none";
//
isDisabledButton();
}
function editSingle(objparent,objedit,objchild){
function makeLink(text , tag){
var temobj = document.createElement(tag);
temobj.style.marginLeft="5px"; temobj.style.marginRight="5px";
temobj.style.textDecoration="underline";temobj.style.cursor="pointer";
temobj.appendChild( document.createTextNode(text) );
return temobj;
}
try{
var secondChild = objchild.childNodes[1];
/* if(secondChild.childNodes[0]){
if(secondChild.childNodes[0].value.trim()=="")return;
}
if(secondChild==null || secondChild.length<=0 )return;
*/
var url = secondChild;
var urlStr = url.nodeValue ;//? url.nodeValue : url.toString() ;
if(urlStr==null || urlStr.trim=="")return;
var editorPanel = document.createElement("span");
objchild.removeChild(url);
var editor = document.createElement("input");
editor.type="text";
//var maxLen = parseInt(objparent.style.width) - 250;
var maxLen = 50;
var thisLen = parseInt( countLength(urlStr) );
editor.size = maxLen > thisLen ? thisLen : maxLen;
editor.value = urlStr;
editor.select();
editor.onmouseover=function(){this.select();}
var update = makeLink("update","font");update.title="更新";
update.onclick=function(){
//updateContens();
var newvalue = editor.value;
if(newvalue.trim() == "" || !validateURL(newvalue)){editor.focus();alert("请输入正确的网址");return;}
//alert(objparent.parentNode.elements.length);
if(isExist(newvalue , objparent.parentNode)){alert("您输入的网址已经存在");return;}
objchild.childNodes[0].value = newvalue;
objchild.removeChild(objchild.childNodes[1]);
objchild.appendChild(document.createTextNode(newvalue));
}
var cancle = makeLink("cancle","font");cancle.title="取消";
cancle.onclick=function(){
objchild.removeChild(objchild.childNodes[1]);
objchild.appendChild(url);
}
//add to editorPanel;
editorPanel.style.fontSize="11px";
editorPanel.style.color="blue";
editorPanel.appendChild(editor);
editorPanel.appendChild(update);
editorPanel.appendChild(document.createTextNode("|"));
editorPanel.appendChild(cancle);
//add to objchild;
objchild.appendChild(editorPanel);
}catch(ex){
alert(ex.toString());
}finally{
//
}
}
var currentDiv;
function showDelete(self){
self.style.backgroundColor = overCol;
currentDiv = self;
var theid = "del_icon";
if(!$(theid)){
var delDiv=document.createElement("div");
delDiv.id=theid;
var d=delDiv;
d.style.textAlign="center";d.style.fontSize="11px";
var edit = document.createElement("span");
edit.title="编辑此条";edit.style.textDecoration="underline";
edit.onclick=function(){
editSingle(currentDiv.parentNode,this.parentNode,currentDiv);
}
var del = document.createElement("span");
del.title="删除此条";del.style.textDecoration="underline";
del.onclick=function(){
delSingle(currentDiv.parentNode,this.parentNode,currentDiv);
}
edit.appendChild(document.createTextNode("edit"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -