jQuery使用serialize(),serializeArray()方法取得表单数据+字符串和对象类型两种表单提交的方法

Posted 像艳遇一样忧伤c

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery使用serialize(),serializeArray()方法取得表单数据+字符串和对象类型两种表单提交的方法相关的知识,希望对你有一定的参考价值。

转载自: http://blog.csdn.net/zqtsx/article/details/28655717

原始form表单值获取方式(手动):

[javascript] view plain copy
 
  1. $.ajax({  
  2.    type: "POST",  
  3.    url: "ajax.php",  
  4.    data: "Name=摘取天上星&position=IT技术",  
  5.    success: function(msg){alert(msg);},  
  6.    error: function(error){alert(error);}  
  7.  });  

JQ serialize()方法取值:

[javascript] view plain copy
 
  1. $.ajax({  
  2.    type: "POST",  
  3.    url:"ajax.php",  
  4.    data:$(‘#formID‘).serialize(),// 要提交的表单  
  5.    success: function(msg) {alert(msg);},  
  6.    error: function(error){alert(error);}  
  7. });  

serialize()序列化表单实例:

[html] view plain copy
 
  1. <script type="text/javascriptsrc="jquery-1.9.1.min.js"></script>  
  2. <script type="text/javascript">  
  3. $(function(){  
  4.    $("#button").click(function(){  
  5.      alert($("#formID").serialize());  
  6.    });  
  7. });  
  8. </script>  
  9. <form id="formID">  
  10.     姓名 <input value="摘取天上星" name="Name" />  
  11.     职位 <input value="IT技术" name="position" />  
  12.         <input id="button" value="提交" type="button" />  
  13. </form>  

 将form中的值转换为键值对:

 

[javascript] view plain copy
 
  1. // 如:{Name:‘摘取天上星‘,position:‘IT技术‘}  
  2. // ps:注意将同名的放在一个数组里  
  3. function getFormJson(form) {  
  4.     var o = {};  
  5.     var a = $(form).serializeArray();  
  6.     $.each(a, function () {  
  7.         if (o[this.name] !== undefined) {  
  8.             if (!o[this.name].push) {  
  9.                 o[this.name] = [o[this.name]];  
  10.             }  
  11.             o[this.name].push(this.value || ‘‘);  
  12.         } else {  
  13.             o[this.name] = this.value || ‘‘;  
  14.         }  
  15.     });  
  16.     return o;  
  17. }  

键值对方式的AJAX调用:

[javascript] view plain copy
 
  1. //调试调用   
  2. $(function(){  
  3.     $("#button").click(function(){  
  4.         alert(getFormJson("#formID"));  
  5.     });  
  6. });  
  7. //Ajax提交  
  8. $.ajax({  
  9.    type: "POST",  
  10.    url:"ajax.php",  
  11.    data:getFormJson($("#formID")),//表单数据JSON格式的函数参数里填写表单的ID或要提交的表单  
  12.    dataType: ‘json‘,  
  13.    success: function(msg) {alert(msg);},  
  14.    error: function(error){alert(error);}  
  15. });  

实例中通用的HTML表单:

[html] view plain copy
 
    1. <form id="formID">  
    2.     姓名 <input value="摘取天上星" name="Name" />  
    3.     职位 <input value="IT技术" name="position" />  
    4.         <input id="button" value="提交" type="button" />  
    5. </form>  

以上是关于jQuery使用serialize(),serializeArray()方法取得表单数据+字符串和对象类型两种表单提交的方法的主要内容,如果未能解决你的问题,请参考以下文章

JQuery中serialize()serializeArray()和param()的使用方法

jQuery序列化表单数据 serialize()serializeArray()及使用

JQuery中serialize()方法的使用

如何使用 jQuery 的 form.serialize 但排除空字段

通过 .load() 加载数据后使用 JQuery UI 的 sortable('serialize');

jquery.serialize() 无法使用 dataTables 插件从第二页开始工作