放一下

   // 供按项目名称查询的AJAX方法
   function  searchProjectByName() {
     
var f=document.forms[0];
     
var pName=document.getElementById("projectName").value;
     
if(isEmpty(pName)){
        alert(
"请输入项目名!");
        
return;
     }

     pName
=paramEscape(pName);
     
var url="searchProjectByName?depId="+f.depId.value+"&projectName="+pName+"&ioc="+f.op.value+"&timeStamp="+new Date().getTime();
     xmlHttp.open(
'get',url,true);
       
// 显示遮盖层
     document.body.appendChild(outHiddenDiv);
     document.body.appendChild(innerHiddenDiv);
     xmlHttp.onReadyStateChange
=handStateSearchProjectByName;
     xmlHttp.send(
null);
  }

  
  
function  handStateSearchProjectByName() {
     
if(xmlHttp.readyState==4){
       
if (xmlHttp.status == 200{
         
var f=document.forms[0];
         
var text=xmlHttp.responseText;
         
//alert(text);
         if(text=='no'){
            
//移除遮盖层
            document.body.removeChild(outHiddenDiv);
            document.body.removeChild(innerHiddenDiv);
            alert(
'没有找到您要的项目!'); 
            showSearchText();
            
return false;
         }
else{
            
var str=text.split(',');
            
var totalText=document.createTextNode(str[0]+"("+str[2]+")");
            
var totalTd=document.getElementById("total");
            totalTd.removeChild(totalTd.firstChild);
            totalTd.appendChild(totalText);
            f.totalCash.value
=str[0];
            f.budgetCash.value
=str[1];
            
var budCash=document.getElementById("budCash");
            
var budCashText=document.createTextNode(str[1]);
            budCash.removeChild(budCash.firstChild);
            budCash.appendChild(budCashText);
            
var obj=document.getElementById("divName");
            
var othDiv=document.getElementById("othName");
            changeDisplay(obj);
            changeDisplay(othDiv);
            f.projectId.value
=str[3];
            f.money.value
="";
         }

         
         
//移除遮盖层
         document.body.removeChild(outHiddenDiv);
         document.body.removeChild(innerHiddenDiv);
       }

     }

  }

  
  
// 供选择项目时更新累计发生额,预算金额的方法
   function  updateCashText(obj) {
  
// 显示遮盖层
     document.body.appendChild(outHiddenDiv);
     document.body.appendChild(innerHiddenDiv);
     
var proId=obj.value;
     
var url="updateCashText?projectId="+proId+"&timeStamp="+new Date().getTime();
     xmlHttp.open(
"get",url,true);
     xmlHttp.onReadyStateChange
=handCashTextState;
     xmlHttp.send(
null);
  }

  
  
function  handCashTextState() {
    
if(xmlHttp.readyState==4){
       
if(xmlHttp.status==200){
         
var f=document.forms[0];
         
var text=xmlHttp.responseText;
         
var str=text.split('!');
         
var totalText=document.createTextNode(str[0]+"("+str[2]+")");
         
var totalTd=document.getElementById("total");
         totalTd.removeChild(totalTd.firstChild);
         totalTd.appendChild(totalText);
         
var budCash=document.getElementById("budCash");
         
var budCashText=document.createTextNode(str[1]);
         budCash.removeChild(budCash.firstChild);
         budCash.appendChild(budCashText);
         f.totalCash.value
=str[0];
         f.budgetCash.value
=str[1];
         f.money.value
="";
         f.billNumber.value 
= str[3];
         
//alert(f.totalCash.value);
         //alert(f.budgetCash.value);
        //移除遮盖层
         document.body.removeChild(outHiddenDiv);
         document.body.removeChild(innerHiddenDiv);
      }

    
    }

  
  }

  
  
function  changeCash() {
     
var f=document.forms[0];
     
var money=f.money.value;
     
if(isNaN(money)){
        alert(
'收款金额应该为数字类型');
        f.money.focus;
        
return false;
     }
else{
        
        
var totalCash=f.totalCash.value;
        
var bugetCash=f.budgetCash.value;
        
var changeCash="";
        
if(!isEmpty(money)){
           changeCash
=parseFloat(money);
        }

        
if(!isEmpty(totalCash)){
           changeCash
+=parseFloat(totalCash);
        }

        
       
        
var bit=0;
        
if(changeCash!=0&&bugetCash!=0){
           bit
=changeCash/bugetCash*10000;
           bit
=Math.round(bit);
        }
   
        
var totalText=document.createTextNode(changeCash+"("+bit/100+"%)");
        
var totalTd=document.getElementById("total");
        totalTd.removeChild(totalTd.firstChild);
        totalTd.appendChild(totalText);
      
     }

  }

 

 

 

    function  handDepListState() {
      
if(xmlHttp.readyState==4){
         
if(xmlHttp.status==200){
           
var f=document.forms[0];
              
var xml=xmlHttp.responseXml;
              
var items=xml.getElementsByTagName('item');
              
var length=f.depId.options.length;
              
for(var i=0;i<length;i++){
                 f.depId.options.remove(
0);             
              }

              
for(var i=0;i<items.length;i++){
                  
var item = items[i];
                  
var id =  item.getAttribute("id");
                  
var text = item.getAttribute("text");
                  f.depId.options.add(
new Option(text,id));
              }

                 
//移除遮盖层
               document.body.removeChild(outHiddenDiv);
            document.body.removeChild(innerHiddenDiv);
         }

      }

   
   }

 

 

 var xmlHttp;
   function createXMLHttpRequest(){
      if(window.ActiveXObject){
         xmlHttp=new ActiveXObject("microsoft.XMLHTTP");
      }else if(window.XMLHttpRequest){
         xmlHttp=new XMLHttpRequest();
     }
   }

  xmlHttp.open("POST|GET|PUT",URL,"TRUE|FLASE",USERNAME,PASSWORD);
 
  xmlHttp.onreadyStatechange=callback;

  xmlHttp.send(params);
  void setRequestHeader(string header, string value)
  string getAllResponseHeaders():它返回一个串,其中包含HTTP请求的所有响应首部,首部包括Content-Length、Date和URI。
  string getResponseHeader(string header):有一个参数表示你希望得到的指定首部值,并且把这个值作为串返回。

 

                              表2-2 标准XMLHttpRequest属性

属    性                              描    述
 
onreadystatechange              每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数
 
readyState                      请求的状态。有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成
 
responseText                    服务器的响应,表示为一个串
 
responseXML                     服务器的响应,表示为XML。这个对象可以解析为一个DOM对象
 
status                          服务器的HTTP状态码(200对应OK,404对应Not Found(未找到),等等)
 
statusText                      HTTP状态码的相应文本(OK或Not Found(未找到)等等)

   if(xmlHttp.readyState==4){
      var active=new ActiveXObject("Microsoft.XMLDOM");
      var response=xmlHttp.responseText;
      active.async = false;
      active.load(response);

  }

------------------------------------------------------------------------------
表3-1  用于处理XML文档的DOM元素属性

属性名                                  描述
 
childNodes                      返回当前元素所有子元素的数组
 
firstChild                      返回当前元素的第一个下级子元素
 
lastChild                       返回当前元素的最后一个子元素
 
nextSibling                     返回紧跟在当前元素后面的元素
 
nodeValue                       指定表示元素值的读/写属性
 
parentNode                      返回元素的父节点
 
previousSibling                 返回紧邻当前元素之前的元素
 
-----------------------------------------------------------------------
表3-2 用于遍历XML文档的DOM元素方法

方法                                       描述
 
getElementById(id) (document)       获取有指定惟一ID属性值文档中的元素
 
getElementsByTagName(name)          返回当前元素中有指定标记名的子元素的数组
 
hasChildNodes()                     返回一个布尔值,指示元素是否有子元素
 
getAttribute(name)                  返回元素的属性值,属性由name指定
 
-----------------------------------------------------------------------------
表3-3  动态创建内容时所用的W3C DOM属性和方法

属性/方法
 描述
 
document.createElement(tagName)

      文档对象上的createElement方法可以创建由tagName指定的元素。如果以串div作为方法参数,就会生成一个div元素
 
document.createTextNode(text)

    文档对象的createTextNode方法会创建一个包含静态文本的节点
 
<element>.appendChild(childNode)

       appendChild方法将指定的节点增加到当前元素的子节点列表(作为一个新的子节点)。例如,可以增加一个option元素,作为select元素的子节点
 
<element>.getAttribute(name)

<element>.setAttribute(name, value)
           这些方法分别获得和设置元素中name属性的值
 
<element>.insertBefore(newNode, targetNode)
          这个方法将节点newNode作为当前元素的子节点插到targetNode元素前面
 
<element>.removeAttribute(name)
           这个方法从元素中删除属性name
 
<element>.removeChild(childNode)
           这个方法从元素中删除子元素childNode
 
<element>.replaceChild(newNode, oldNode)
          这个方法将节点oldNode替换为节点newNode
 
<element>.hasChildnodes()
          这个方法返回一个布尔值,指示元素是否有子元素

少数其他几种方法是专门用于文本节点的。这些方法用于增加或分解节点中的数据:

appendData(text) 将提供的文本追加到文本节点的已有内容之后。
 
insertData(position, text) 允许在文本节点的中间插入数据。在指定的位置插入提供的文本。

replaceData(position, length, text) 从指定位置开始删除指定长度的字符,用提供的文本代替删除的文本。

 

----------------------------------------------------------------------------------------------------------
  xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值