小李广

学习是一个勤学苦练的过程
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Javascript 学习笔记

Posted on 2010-04-01 11:13  小李广  阅读(196)  评论(0编辑  收藏  举报
在实践中不断添加和完善 
 
//去除左右空格
function trim(str){
    return str.replace(/(^\s*)|(\s*$)/g,"");  
}

String.prototype.trim = function(){return this.replace(/(^\s*)|(\s*$)/g,"");}//去除左右空格
String.prototype.ltrim = function(){return this.replace(/^\s+/,"");}//去除左空格
String.prototype.rtrim = function(){return this.replace(/\s+$/,"");}//去除右空格

/*******************************************************************************/
//限制键盘的输入
function inputLongNumberCheck(number) {
    //键盘只能输入0-9之间的数和'.'符号 
    if(!((window.event.keyCode >= 48 && window.event.keyCode <= 57) || window.event.keyCode == 46)){
        window.event.keyCode = 0;
    } else if (window.event.keyCode == 46) {
      //只能输入一个'.'符号                     
     if(number.indexOf(".") >= 0) {
          window.event.keyCode = 0;
    }
    }
        
}
//验证输入的是否为数字格式
function checkNumber(put, str) {  
    if(isNaN(str)) {
        alert("输入不合格,请重新输入!");
        str = "";
        put.focus();
    } 
    return str;
}

/*******************************************************************************/
 

//到指定的分页页面
function goPage(page){
    var form = document.forms[0];
    form.page.value = page;
    form.submit();
}

////checkbox全选
//function allSelect(allselectObj, items, c) {
//   var status = allselectObj.checked;
//   if(status == true) {
//       for(var i=0; i<items.length; i++) {
//            items[i].checked = true;
//            items[i].parentNode.parentNode.style.backgroundColor = 'lightblue';
//       }
//   } else {
//       for(var i=0; i<items.length; i++) {
//            items[i].checked = false;
//            items[i].parentNode.parentNode.style.backgroundColor = c;//将行的颜色还原
//       }
//   }
//}

////改变选中行颜色
//function changeColor(node){ 
//   var pNode = node.parentNode.parentNode;
//   if(node.checked) {
//         pNode.style.backgroundColor = 'lightblue'; //被选中时的颜色
//         pNode.c = pNode.style.backgroundColor;
//   }
//   else {  
//        pNode.style.backgroundColor = '#E0FEFD'; //取消选中时的颜色
//         pNode.c = pNode.style.backgroundColor;
//   }
//   pNode.onmouseover = function() {
//          this.c=this.style.backgroundColor;
//          this.style.backgroundColor='white';
//   }
//   pNode.onmouseout = function() {
//          this.style.backgroundColor=this.c;
//   }
//}

/*******************************************************************************/

//checkbox全选
function allSelect(allselectObj,clientId) {
   var tableObj = document.getElementById(clientId);
  // alert(tableObj);
   var status = allselectObj.checked;
   if(status == true) {
       for(var i=1; i<tableObj.rows.length; i++) {
             var rowObj = tableObj.rows[i];
             var cellObj = rowObj.cells[0];
             if(cellObj) {
                cellObj.getElementsByTagName("INPUT")[0].checked = true;
                rowObj.className = 'selectRowStyle';
            }
       }
   } else {
       for(var i=1; i<tableObj.rows.length; i++) {
             var rowObj = tableObj.rows[i];
             var cellObj = rowObj.cells[0];
             if(cellObj) {
                cellObj.getElementsByTagName("INPUT")[0].checked = false;
                rowObj.className = 'RowStyle';//将行的颜色还原
            }
       }
   }
}
//改变选中行颜色
function changeColor(node){ 
   var pNode = node.parentNode.parentNode;
   if(node.checked) {
         pNode.className = 'selectRowStyle'; //被选中时的颜色
         pNode.originalClass = pNode.className;
   }
   else {  
        pNode.className = 'RowStyle'; //取消选中时的颜色
         pNode.originalClass = pNode.className;
   }
   pNode.onmouseover = function() {
          this.originalClass=this.className;
          this.className = 'mouseOverStyle';
   }
   pNode.onmouseout = function() {
          this.className = this.originalClass;
   }
  
}

//设置GridView 表格样式
function setTableStyle(clientId) { 
    var tableObj = document.getElementById(clientId);
    tableObj.className = 'GridViewStyle';
    for(var i=0; i<tableObj.rows.length; i++) {
             var rowObj = tableObj.rows[i];
             if(i == 0) {//如果是Header部分
                 rowObj.className = 'HeaderStyle';
             }
             else {             
                 rowObj.className = 'RowStyle';
                 rowObj.onmouseover = function() {
                    this.originalClass = this.className;
                    this.className = 'mouseOverStyle';
                 }
                 rowObj.onmouseout = function() {
                    this.className = this.originalClass;
                 }
                 for(var j=1;j<rowObj.cells.length;j++) {
                     var cellObj = rowObj.cells[j];
                     cellObj.onclick = function() {
                           var parentRow = this.parentNode;
                           var checkBox = parentRow.cells[0].getElementsByTagName("INPUT")[0];
                           if(checkBox.checked) {
                              checkBox.checked = false;
                              parentRow.className = 'RowStyle'; 
                              parentRow.originalClass = 'RowStyle';
                           }
                           else {
                              checkBox.checked = true;
                              parentRow.className = 'selectRowStyle';//选择行颜色
                              parentRow.originalClass = 'selectRowStyle';
                           }
                     }
                 }
             }
     }       
}
/*******************************************************************************/    
//确定xx提示
function Confirm(ClientID,typeName){
     var tableObj = document.getElementById(ClientID);
      var isChecked;
     for(var i=1; i<tableObj.rows.length; i++) {
            var rowObj = tableObj.rows[i];
            var cellObj = rowObj.cells[0];
            if(cellObj) {
                isChecked = cellObj.getElementsByTagName("INPUT")[0].checked;
                if(isChecked == true) break;
            }
     }
     if(isChecked == true) {
        if(!confirm('确定 ['+typeName+'] 选择项?'))
         return false;
     } else {
         alert("请选择要 ["+typeName+"] 的项!");
         return false;
     }
     return true;
}

//编辑按钮提示并弹出编辑页面
function editCheck(ClientID,url,height){
    var tableObj = document.getElementById(ClientID);
    var isChecked;
    var checkedCount = 0;
    var checkBoxValue;
    for(var i=1; i<tableObj.rows.length; i++) {
            var rowObj = tableObj.rows[i];
            var cellObj = rowObj.cells[0];
            if(cellObj) {
                isChecked = cellObj.getElementsByTagName("INPUT")[0].checked;
                //if(isChecked == true) break;
                if(isChecked) {
                    checkedCount++;
                    checkBoxValue = cellObj.getElementsByTagName("INPUT")[0].value;
                }
                
                if(checkedCount > 1) {
                    alert("一次只能选择一条进行[编辑]!");
                         return false;
                }
                
            }
     }
     if(checkedCount < 1) {
        alert("请选择 [编辑] 的项!");
             return false;
    }
     
     //var typeName = document.getElementById('lblType').innerText;
    // var url = "Dictionary_Edit.aspx?typename=" + typeName + "&dictId=" + checkBoxValue;
     url += checkBoxValue;
     if(height)
     {}
     else
     {
        height = 300;
     }
     winOpen(url,'edit',650,height); //打开新窗口
     return false;               
}

//编辑按钮提示并跳转到编辑页面
function editCheck2(ClientID,url){
    var tableObj = document.getElementById(ClientID);
    var isChecked;
    var checkedCount = 0;
    var checkBoxValue;
    for(var i=1; i<tableObj.rows.length; i++) {
            var rowObj = tableObj.rows[i];
            var cellObj = rowObj.cells[0];
            if(cellObj) {
                isChecked = cellObj.getElementsByTagName("INPUT")[0].checked;
                //if(isChecked == true) break;
                if(isChecked) {
                    checkedCount++;
                    checkBoxValue = cellObj.getElementsByTagName("INPUT")[0].value;
                }
                
                if(checkedCount > 1) {
                    alert("一次只能选择一条进行[编辑]!");
                         return false;
                }
                
            }
     }
     if(checkedCount < 1) {
        alert("请选择 [编辑] 的项!");
             return false;
    }
     
     //var typeName = document.getElementById('lblType').innerText;
    // var url = "Dictionary_Edit.aspx?typename=" + typeName + "&dictId=" + checkBoxValue;
     url += checkBoxValue;
      
     window.location.href = url;
     return false;               
}

/*******************************************************************************/
//打开窗口
function winOpen(url, name, width, height) {
    window.open(url, name, "left=400,top=200,width=" + width + ",height=" + height);    
} 

//function formFields(name, desc) {
//    this.name = name;
//    this.desc = desc;
//}

////验证表单字段
//function validateField(){
//    var objForm = document.forms[0];
//    var fieldArray = new Array(new formFields("name","产品名称"),new formFields("typeName","产品类别"),new formFields("baseprice","进货价"),
//                new formFields("marketprice","市场价"),new formFields("sellprice","销售价"),new formFields("stylename","样式名称"),
//                new formFields("productImageFile","图片"),new formFields("description","产品简介"));
//    for(var i=0; i<fieldArray.length; i++) {
//        var fieldObj = eval("objForm." + fieldArray[i].name);
//        if(fieldObj == null || trim(fieldObj.value) == "") {
//            alert(fieldArray[i].desc + "不能为空!");
//            if( !fieldObj.disabled && fieldObj.focus()) fieldObj.focus(); 
//            return false;
//        }
//    } 
//    //return validateImage(objForm.productImageFile.value); 
//    return true;
//}

//验证图片格式
function validateImage(imagepath) {
      var uploadfilestr = trim(imagepath);//上传文件的路径字符串
      if(uploadfilestr != ""){
           //截取上传文件的扩展名
           var ext = uploadfilestr.substring(uploadfilestr.lastIndexOf('.')+1).toLowerCase();// bmp/jpg/gif/png
        if(ext != "bmp" && ext != "jpg" && ext != "gif" && ext != "png"){
            alert("请上传 bmp、jpg、gif、png 格式的文件");
            return false;
        }    
      }
      return true;
 }   
/*******************************************************************************/      

 /* ajax 验证用户名是否已经存在 */

  var xmlhttp;
  function validate(){
     var idField = document.getElementById("username");
     var url = "validate.jsp?username=" + escape(idField.value);
     //1、创建XMLHTTPRequset对象
     if(window.XMLHttpRequest){
         xmlhttp = new XMLHttpRequest();
     } else if(window.ActiveXObject) {
         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
     }
     
     //2、注册回调函数
     //注册回调函数时,只需函数名,不需加括号
     xmlhttp.onreadystatechange = callback;
     
     //3、设置连接信息(GET方式)
     //第一个参数表示http的请求方式,支持所有的http的请求方式,只要使用get和post
     //第二个参数表示请求的url地址,get方式请求的参数也在url中
     //第三个参数表示采用异步还是同步的方式交互,true表示异步
     //xmlhttp.open("GET",url,true); 
      
     //4、发送数据,开始与服务器端进行交互
     //同步方式下,send这句话会在服务器端数据回来后才执行完
     //异步方式下,send这句话会立即完成执行
     //xmlhttp.send(null);
     
     //3、设置连接信息(POST方式)
     xmlhttp.open("POST","validate.jsp",true);
     //POST方式需要自己设置http的请求头
     xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     //POST方式发送数据
     xmlhttp.send("username=" + escape(idField.value));
     

  }
  
  //5、回调函数
  function callback(){
     //接收响应的数据
     //判断对象的状态是交互完成
     if(xmlhttp.readyState == 4){
       //获取服务器端返回的数据
       //获取服务器端输出的纯文本数据
       if(xmlhttp.status == 200){
         var msg = xmlhttp.responseXML.getElementsByTagName("msg")[0];
          //alert(msg.childNodes[0].nodeValue);
         setMsg(msg.childNodes[0].nodeValue);
       }
     }
  }
  
  function setMsg(msg){
      //alert(msg);
      if(msg == "invalid"){
         document.getElementById("usermsg").innerHTML = "<span style='color:red'>用户名已被使用</span>";
      } else {
         document.getElementById("usermsg").innerHTML = "<span style='color:blue'>用户名可以使用</span>";     
      }
  }    
  
/*******************************************************************************/      
  
//设置table样式
function changeStyle(){
    var tableObj = document.getElementById("table1");
    for(var i=0; i < tableObj.rows.length; i++) {
       var rowObj = tableObj.rows[i];
        
       for(var j=0; j < rowObj.cells.length; j++) {
          var cellObj = rowObj.cells[j];
          if(j % 2 == 0)
            if(i == tableObj.rows.length-1)    
               cellObj.className = "style2";
            else    
               cellObj.className = "style1";
          else if(i == tableObj.rows.length-1)    
               cellObj.className = "style2";
            else
               cellObj.className = "style"; 
                   
       }
    
    }
}