电力项目pub.js实现替换form表单的innerHTML

Posted xuzhuaaron1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电力项目pub.js实现替换form表单的innerHTML相关的知识,希望对你有一定的参考价值。

目的:角色类型切换的时候下面的权限分配不同的checkbox被勾中以及显示用户分配

切换前


切换后


第一步




/**
传递的参数:
  domId:传递表单中Form2的名称
  action:请求的路径    'system/elecRoleAction_edit.do'  这个请求最终返回的是一个roleEdit.jsp的页面 去除<%@ page language="java" pageEncoding="UTF-8"%>
  sForm:传递表单中Form1的名称
*/
Pub.submitActionWithForm=function(domId,action,sForm)
  var req = Pub.newXMLHttpRequest();
  var handlerFunction = Pub.getReadyStateHandler(req, domId,Pub.handleResponse);
  req.onreadystatechange = handlerFunction;
  req.open("POST", action, false);
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
  var str = Pub.getParams2Str(sForm); 
  //传递的是以Form1的属性值做为参数
  //alert(str);
  req.send(str);


/**创建Ajax引擎*/
Pub.newXMLHttpRequest=function newXMLHttpRequest()
  var xmlreq = false;
  if (window.XMLHttpRequest)
    xmlreq = new XMLHttpRequest();
  else if (window.ActiveXObject)
    try
      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
    catch (e1)
      try
        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
      catch (e2)
        alert(e2);
     
   
 
  return xmlreq;


/**
req:ajax引擎
eleid:表单中form2的名称
responseXmlHandler:表示Pub.handleResponse函数
*/
Pub.getReadyStateHandler =function getReadyStateHandler(req, eleid,responseXmlHandler)
  return function ()
    if (req.readyState == 4)
      if (req.status == 200)

       //req.responseText 就是请求的路径    'system/elecRoleAction_edit.do' 返回的结果
        responseXmlHandler(req.responseText,eleid);
      else
        alert("HTTP error: "+req.status);
        return false;
     
   
 


最终执行这个function

/**
data:服务器端返回的结果 
eleid:表单值Form2的名称
*/
Pub.handleResponse= function handleResponse(data,eleid)
      //alert(data);
      //获取Form2的对象
      var ele =document.getElementById(eleid);
      //alert(data);

     //返回的是roleEdit.jsp  最终传给Form2,也就是Form2的内部html布局
      ele.innerHTML = data;
    


/**
sForm:表单中Form1的名称
*/
Pub.getParams2Str=function getParams2Str(sForm)
 var strDiv="";
 try
    var objForm=document.forms[sForm];
  if (!objForm)
    return strDiv;
  var elt,sName,sValue;
  for (var fld = 0; fld < objForm.elements.length; fld++)
      elt = objForm.elements[fld];    
      sName=elt.name;
      sValue=""+elt.value;
      if(fld==objForm.elements.length-1)
          strDiv=strDiv + sName+"="+sValue+"";
       else   
          strDiv=strDiv + sName+"="+sValue+"&";
   
 
  catch (ex)
    return strDiv;

   //alert(strDiv);
   return strDiv;

以上是关于电力项目pub.js实现替换form表单的innerHTML的主要内容,如果未能解决你的问题,请参考以下文章

vue+element的form表单实现禁止输入汉字(中文),即使输入也替换为空字符串

电力项目八--运行监控的保存

phpcms实现全站搜索

如何替换 geoext.form.formpanel 中的协议

js实现无刷新表单提交文件,将ajax请求转换为form请求方法

web项目一些小知识