?? checkbox.js
字號:
var strAll=unescape("%u5168%u9009");
var canAll=unescape("%u53D6%u6D88");
//define form,all check button,list DIV
/* checkbox.jsp采用這種方式,checkbox2.jsp采用原來的方式
* 多選框調用方法,與下面將函數寫在外面的方式相同,其它js操作代碼也可以按此來整理;
* var newCheckBox = selectCheckBox;
* var theForm = document.forms["sitelist"];
* newCheckBox.obj = theForm;
* newCheckBox.chkname = "check";
* newCheckBox.list = $("list");
*
*/
var selectCheckBox = {
obj : this.obj,
chkname : this.chkname,
list : this.list,
//單擊多選框
clickchk : function(){
var allcheck=true;
var obj = this.obj;
var chk = this.obj.elements[this.chkname];
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;}
}
}
chk.value=allcheck?canAll:strAll;
},
//選擇全選
checkall : function (){//全選or取消全選;
var chk = this.obj.elements[this.chkname],obj = this.obj,list = this.list;
for(var i=0;i<obj.elements.length;i++){
var eli = obj.elements[i];
if(eli.tagName.toLowerCase()=="input" && eli.type=="checkbox"){
if(chk.value==strAll){//check all checkbox input;
eli.checked=true;
eli.parentNode.style.backgroundColor = checkedCol;
}else{
eli.checked=false;
eli.parentNode.style.backgroundColor = emptyCol;
}
}
}
if(list.childNodes.length<=1)return;
chk.value=chk.value==canAll?strAll:canAll;
//更改全選/取消的顯示;
//setStatus($("list"),document.sitelist);
},
//單擊反選
reverseCheck : function (){
var chk = this.obj.elements[this.chkname],obj = this.obj;
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type.toLowerCase()=="checkbox"){
obj.elements[i].checked = obj.elements[i].checked ? false : true;
}
this.clickchk(obj);
}
}
/* ,
setclick : function(){
var allcheck=true;
var obj = this.obj;
var chk = this.obj.elements[this.chkname];
for(var i=0;i<obj.elements.length;i++){
var eli = obj.elements[i];
if(eli.tagName.toLowerCase()=="input" && eli.type.toLowerCase()=="checkbox" ){
alert(eli.value);
eli.onclick = function(){
this.clickchk();
alert(eli.value);
}
}
}
}*/
}
////////////////////////
//checkbox2.jsp采用此方法
//改成上面這種方式寫成對象的方式也可以
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.toLowerCase()=="checkbox"){
eli.parentNode.style.backgroundColor = eli.checked ? checkedCol :"";
if(eli.checked==false){allcheck=false;}
}
}
obj.elements["check"].value=allcheck?canAll:strAll;
}
function checkall(obj){//全選or取消全選;
var chk=obj.elements["check"];
for(var i=0;i<obj.elements.length;i++){
var eli = obj.elements[i];
if(eli.tagName.toLowerCase()=="input" && eli.type.toLowerCase()=="checkbox"){
if(chk.value==strAll){//check all checkbox input;
eli.checked=true;
eli.parentNode.style.backgroundColor = checkedCol;
}else{
eli.checked=false;
eli.parentNode.style.backgroundColor = emptyCol;
}
}
}
if($('list').childNodes.length<=1)return;
chk.value=chk.value==canAll?strAll:canAll;
//更改全選/取消的顯示;
//setStatus($("list"),document.sitelist);
}
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.toLowerCase()=="checkbox"){
obj.elements[i].checked = obj.elements[i].checked ? false : true;
}
clickchk(obj);
}
}
/////////////////////////////////////////////////////
//////////////////////////////////////
//以下是動態添加checkbox框的js代碼
function getCheckBoxLen(obj){
var len=0;
for(var i=0;i<obj.elements.length;i++){
if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type.toLowerCase()=="checkbox"){
len++;
}
}
return len;
}
function spanLink(text , tag){
var temobj = document.createElement(tag);
temobj.style.color="green";
temobj.style.textDecoration="underline";temobj.style.cursor="pointer";
temobj.appendChild( document.createTextNode(text) );
temobj.onclick=function(){
var shttp = "http://";
var url = text.substring(0,7)!=shttp ? shttp+text : text ;
window.open(url);
}
//temobj.style.fontSize="14px";
return temobj;
}
function ahrefLink(text,tag){
var txt=document.createTextNode(text);
var ahref=document.createElement("a");
ahref.appendChild(txt);
//ahref.setAttributes("aaa") = "http://"+url;
var shttp = "http://";
var hreflink = text.substring(0,7)!=shttp ? shttp+text : text ;
ahref.href = hreflink;
ahref.target="_blank";
//ahref.style.fontSize="14px";
return ahref;
}
function appendToList(chkbox,ahref){
// append checkbox into list DIV;
var div=document.createElement("div");
div.appendChild(chkbox);
div.appendChild(ahref);
div.style.borderBottom="1px dashed gray";
div.style.padding="5px";
div.onmouseover=function(){
showDelete(this);
}
div.onmouseout=function(){
hideDelete(this);
}
var list = $("list");
list.appendChild(div);
}
function addSite(obj){
var url=obj.url.value.trim();
if(url.match(/^\s*$/g) || !validateURL(url)){alert("請輸入正確網址:如www.mysite.com 或 www.域名.cn");obj.url.focus();return false;}
if(isExist(url,obj)){alert("你添加的網址已經存在列表中");return false;}
var chkboxname = "url_chkbox" + ( getCheckBoxLen(obj)+1 );
/**************************/
// append use dom
function appendCheckbox(){
//js add checkbox
var chkbox=document.createElement("input");
chkbox.type="checkbox";
chkbox.onclick=function(){clickchk(obj);}//全部選擇后check按鈕顯示取消;
chkbox.value = url;
chkbox.name = chkboxname;
var ahref = ahrefLink(url,"span");//改a為span,以便快速去掉鏈接
//start add element;
appendToList(chkbox,ahref);
//end add;
}
/**************************/
// get feedback data;
function sendcheckbox(){
var chklist = this.req.responseText;
//alert( chklist );
if(chklist.indexOf("\"$appendOK$\"")!=-1){//得到添加成功反饋后即開始通過DOM添加
closeTip();
appendCheckbox();//server has added the checkbox,call client to add;
}
}
//start xmlhttp post;
showTip("正在添加...");
var suburl = obj.action;
var _name = "name=" + encodeURIComponent(chkboxname);
var _value = "value=" + encodeURIComponent(url);
var _desc = "desc=" + encodeURIComponent(url);
var params = _name +"&"+ _value +"&"+ _desc;
//showTip("send...");
//alert(params);
var sendadd = new net.ContentLoader( suburl ,sendcheckbox,null,"POST",params,null);
/////////////////////////////////////////bakup xmlhttp request;
/*
var xmlhttp=false;
//這樣比下面更詳細,還有報錯提示
//xmlhttp = false;
if(window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!xmlhttp) {
window.alert("不能創建XMLHttpRequest對象實例.");
//return false;
}
try{
xmlhttp.open("get",suburl+"?"+ params,true);
xmlhttp.onreadystatechange=function() {
if(xmlhttp.readyState==4){
if (xmlhttp.status!=404) {
alert(xmlhttp.responseText);
} else {
}
}
}
xmlhttp.send(null);
}catch(e){
alert(e);
}
*/
////////////////////////////////////////
//end xmlhttp post;
//如果已經添加了多選框則去掉禁用;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -