表单序列化插件serializeJSON.js下载及使用示例
作者:admin 时间:2019-8-29 18:56:27 浏览:5026jquery.serializeJSON
serializeJSON.js是一个jquery的表单序列化插件,能把表单转化为JavaScript对象。
下载
安装
把serializeJSON.js放到网站目录下直接调用即可。务必确保先调用jquery库文件。例如:
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="jquery.serializeJSON.js"></script>
使用示例
HTML表单
- <form>
- <input type="text" name="title" value="Finding Loot"/>
- <input type="text" name="author[name]" value="John Smith"/>
- <input type="text" name="author[job]" value="Legendary Pirate"/>
- </form>
JavaScript:
- $('form').serializeJSON();
- // returns =>
- {
- title: "Finding Loot",
- author: {
- name: "John Smith",
- job: "Legendary Pirate"
- }
- }
支持表单 input, textarea 和 select 标签,嵌套属性和数组可以使用 attr[nested][nested]
语法来声明。
HTML表单
- <form id="my-profile">
- <!-- simple attribute -->
- <input type="text" name="fullName" value="Mario Izquierdo" />
- <!-- nested attributes -->
- <input type="text" name="address[city]" value="San Francisco" />
- <input type="text" name="address[state][name]" value="California" />
- <input type="text" name="address[state][abbr]" value="CA" />
- <!-- array -->
- <input type="text" name="jobbies[]" value="code" />
- <input type="text" name="jobbies[]" value="climbing" />
- <!-- nested arrays, textareas, checkboxes ... -->
- <textarea name="projects[0][name]">serializeJSON</textarea>
- <textarea name="projects[0][language]">javascript</textarea>
- <input type="hidden" name="projects[0][popular]" value="0" />
- <input type="checkbox" name="projects[0][popular]" value="1" checked />
- <textarea name="projects[1][name]">tinytest.js</textarea>
- <textarea name="projects[1][language]">javascript</textarea>
- <input type="hidden" name="projects[1][popular]" value="0" />
- <input type="checkbox" name="projects[1][popular]" value="1"/>
- <!-- select -->
- <select name="selectOne">
- <option value="paper">Paper</option>
- <option value="rock" selected>Rock</option>
- <option value="scissors">Scissors</option>
- </select>
- <!-- select multiple options, just name it as an array[] -->
- <select multiple name="selectMultiple[]">
- <option value="red" selected>Red</option>
- <option value="blue" selected>Blue</option>
- <option value="yellow">Yellow</option>
- </select>
- </form>
JavaScript:
- $('#my-profile').serializeJSON();
- // returns =>
- {
- fullName: "Mario Izquierdo",
- address: {
- city: "San Francisco",
- state: {
- name: "California",
- abbr: "CA"
- }
- },
- jobbies: ["code", "climbing"],
- projects: {
- '0': { name: "serializeJSON", language: "javascript", popular: "1" },
- '1': { name: "tinytest.js", language: "javascript", popular: "0" }
- },
- selectOne: "rock",
- selectMultiple: ["red", "blue"]
- }
serializeJSON
返回一个JavaScript对象,而不是一个JSON字符串。
要转换为JSON字符串,可以使用JSON.stringify
方法。
- var obj = $('form').serializeJSON();
- var jsonString = JSON.stringify(obj);
插件的实现依赖于jquery的.serializeArray()
方法。这意味着它只序列化.serializeArray()
支持的输入,尤其是,所包含的元素不能被禁用,并且必须包含name属性。由于没有使用按钮提交表单,因此没有序列化提交按钮值。文件选择(file select)元素中的数据不能序列化。