Form 表单的 XML 化(Javascript)

如何从一个 HTML 表单生成对应的 XML 呢?在我们为应用程序创建一个简单的 Web 服务接口的时候可能会用到它,来看看这个函数:

/*设置一个命名空间防止冲突*/

if (typeof jscript == ‘undefined‘) {

  jscript = function() { }

}

jscript.form = function() { }

/**

 * This function takes an HTML form and constructs an XML document from it,

 * using the specified root element.

 *(这个函数把 HTML 表单中的信息转换为 XML document)

 * @param  inForm        A reference ot the HTML form object to serialize.

 * @param  inRootElement The root element the XML dccument should use.

 * @return               A string of XML constructed from serializing the

 *                       specified form.(此参数为 XML document 的根元素)

 */

jscript.form.formToXML = function(inForm, inRootElement) {

  if (inForm == null) {

    return null;

  }

  if (inRootElement == null) {

    return null;

  }

  var outXML = "<" + inRootElement + ">";

  var i;/*开始处理*/

  for (i = 0; i < inForm.length; i++) {

    var ofe = inForm[i];

    var ofeType = ofe.type.toUpperCase();

    var ofeName = ofe.name;

    var ofeValue = ofe.value;

    /*处理不同的 input 框及 select 和 textarea,"SELECT-ONE" 为单选模式*/

    if (ofeType == "TEXT" || ofeType == "HIDDEN" ||

      ofeType == "PASSWORD" || ofeType == "SELECT-ONE" ||

      ofeType == "TEXTAREA") {

      outXML += "<" + ofeName + ">" + ofeValue + "</" + ofeName + ">"

    }

    /*处理 select 的多选(multiple)模式*/

    if(ofeType == "SELECT-MULTIPLE"){

        outXML += "<" + ofeName + ">";

        for(j = 0; j < ofe.options.length; j ++){

            outXML += "<option" + (j + 1) + ">";

            outXML += "<text>" + ofe.options[j].innerHTML + "</text>";

            outXML += "<value>" + ofe.options[j].value + "</value>";

            outXML += "</option" + (j + 1) + ">";

        }

        outXML += "</" + ofeName + ">";

    }

    /*处理单选框(radio)*/

    if (ofeType == "RADIO" && ofe.checked == true) {

      outXML += "<" + ofeName + ">" + ofeValue + "</" + ofeName + ">"

    }

    /*处理多选框*/

    if (ofeType == "CHECKBOX") {

      if (ofe.checked == true) {

        cbval = "true";

      } else {

        cbval = "false";

      }

      outXML = outXML + "<" + ofeName + ">" + cbval + "</" + ofeName + ">"

    }

    outXML += "";

  }

  outXML += "</" + inRootElement + ">";

  return outXML;

} // End formToXML().

来看一个表单,试试这个函数的效果:

<form id="testForm">

    <input type="text" name="firstName" value="Jack"><br>

    <input type="text" name="lastName" value="Redd"><br>

    <select multiple id="numComputers" name="numComputers">

      <option value="1">I own one computer</option>

      <option value="2">I own two computers</option>

      <option value="2+">I own two or more computers</option>

    </select>

</form>

通过表单元素来调用函数:

jscript.form.formToXML(document.getElementById(‘testForm‘),‘Person‘)

来看看它的处理结果:

<Person>

    <firstName>Jack</firstName>

    <lastName>Redd</lastName>

    <numComputers>

        <option1>

            <text>I own one computer</text>

            <value>1</value>

        </option1>

        <option2>

            <text>I own two computers</text>

            <value>2</value>

        </option2>

        <option3>

            <text>I own two or more computers</text>

            <value>2+</value>

        </option3>

    </numComputers>

</Person>

具体生成什么格式的 XML 信息要看应用程序的要求,然后通过修改函数来达到目的,这只是一个示例。:->

时间: 2024-10-16 09:43:38

Form 表单的 XML 化(Javascript)的相关文章

JavaScript之form表单的序列化和json化[form.js]

一.应用场景 form提交时,使用ajax提交. 二.效果 通过本工具,实现表单所有form的快速序列化和json化,使前端人员在ajax提交form表单的时,脱离重复性的,大劳动量的手动抽取form属性和对应的值. 三.源码[form.js] //将数据序列化成 url请求方式的编码 function serialize(form){ var len=form.elements.length;//表单字段长度;表单字段包括<input><select><button>

Javascript中的Form表单知识点总结

在HTML中,表单是由form元素来表示的,但是在javascript中,表单则由HTMLFormElement类型,此元素继承了HTMLElement,因此与其他HTML元素具有相同的默认属性:HTMLFormElement有自己以下属性和方法: acceptCharset: 服务器能够处理的字符集:等价于HTML中的accept-charset特性: action:  接收请求的URL,等价于HTML中的action elements: 表单中所有控件的集合. enctype: 请求的编码类

JavaScript 创建一个 form 表单并提交

<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input onclick="MakeForm()" type="button" class="btn grey"

HTML5第8次课堂笔记( 模拟form表单提交数据,xml的解析,jQuery的Ajax方法使用, mui的ajax)

HTML5第8次课堂笔记 1.  模拟form表单提交数据:(get方式) <body> <formmethod="get"action="DataTest7"> <inputtype="text"name="uname"value="yang"id="myname"><br/> <inputtype="password&q

使用ajax提交form表单,包括ajax文件上传

前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的ajax $.ajax({ url:"${pageContext.request.contextPath}/public/testupload", type:"post", data:{username:username}, success:function(data){ w

使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html

使用ajax提交form表单,包括ajax文件上传 前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的ajax $.ajax({ url:"${pageContext.request.contextPath}/public/testupload", type:"post", data:{username:username},

jQuery通过jquery.form.js插件使用AJAX提交Form表单

我简单使用了一下,jQuery Form插件有一下优点:  1.支持提交前验证. 2.支持提交后回调. 3.采用AJAX方式,有很好的用户体验 4.提交方式是灵活.只要指定要提交的form ID即可.想提交那个form.就可提交那个.同时提交参数可配置.5.支持提交多种类型数据.如:xml,json等. 主要的函数: 1.ajaxForm 增加所有需要的事件监听器,为AJAX提交表单做好准备.ajaxForm不能提交表单.在document的ready函数中,使用ajaxForm来为AJAX提交

form表单提交数据编码方式和tomcat接受数据解码方式的思考

http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html ******************************************************* form有2中方法把数据提交给服务器,get和post,分别说下吧. (一)get提交 1.首先说下客户端(浏览器)的form表单用get方法是如何将数据编码后提交给服务器端的吧. 对于get方法来说,都是把数据串联在请求的url后面作为参数,如:http://localhost:

浏览器行为:Form表单提交

1.form表单常用属性 1 2 3 4 action:url 地址,服务器接收表单数据的地址 method:提交服务器的http方法,一般为post和get name:最好好吃name属性的唯一性 enctype: 表单数据提交时使用的编码类型,默认使用"pplication/x-www-form-urlencoded",如果是使用POST请求,则请求头中的content-type指定值就是该值.如果表单中有上传文件,编码类型需要使用"multipart/form-data