# form change **Repository Path**: fulusco/formGG ## Basic Information - **Project Name**: form change - **Description**: 表单差异信息 获取表单更改的信息 如,{"name":"小明","sex":"男","email":"1@qq.com"}改为{"name":"小红","sex":"男","email":"1@qq.com"} 获取到 {"name":"小红"} - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-06-27 - **Last Updated**: 2022-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 插件名 formGG 获取表单更改后的信息 ​ 表单更改 [gēng gǎi] #### 功能列表... ​ 1、获取表单更改信息(已完成) 2、表单版本控制(未完成) #### 缺陷 1、如果`` 是多个文件的时候,只能获取第一个文件名 * 替代方法是使用隐藏标签,把file的路径放入隐藏标签 #### 这是CKEditor的使用截图 ![输入图片说明](https://gitee.com/uploads/images/2018/0627/215240_f84e6eb1_114858.png "173109_44574786_114858.png") 如何获取表单的修改过的信息 > 示例在index2.html ```javascript /* 参数说明:因为在插件中添加了一些版本控制的配置,但并未完成,所以有些配置不可使用 ,但并不影响 下列为准 如需使用多个配置可获取多个formGG,如: var gg1 = $("form").GG(config);var gg2 = $("form").GG(config); */ // 配置参数(可用):override、init、extend、ignores、ignore、filter var config = {}; // 默认配置。 $("form").GG(config) 等同于 $("form").GG() // 如果form中不存在相同name,该配置可以忽略 // 默认为 false,表示当form中存在相同name时,只记录第一个,其他跳过 // ** 并不推荐使用,一般情况下应该保证form中不存在相同的name var override = { 'override': true // 默认为 false }; // 获取表单的默认方法为 $('form').serializeArray() 不建议更改 // 1(不推荐)、如果要更改则返回的数据格式要和.serializeArray()一致 : [{'name':'email','value':'1@qq.com'},{'name':'pwd','value':'123'}] // 2(推荐)、该方法并不能获取一些例如:div、text等标签的值,可以使用 extend 作为补充 var init = { 'init': 'serializeArray()' } // sel:选择器,fun:jQuery方法,ignore(选填):是否忽略该配置,推荐使用缺省值 var extend = { 'extend': [{ 'ignore': true, // 当前对象的配置将被忽略,这个数组只有下面的两个生效 'sel': 'input[type="file"]', 'fun': 'val()' // $('input[type="file"]').循环.val() }, { 'type':'custom', // 当使用该属性时,override不会对该sel生效,fun获取的该值会覆盖之前的内容 'sel': '#ckeditor', 'fun': 'CKEDITOR.instances.ckeditor.getData()' }, { 'sel': 'text', 'fun': 'html()' // $('text').循环.html() } ] } // 使用选择器忽略,当有符合以下选择器的输入框或者是文本,更改将被忽略 // 符合下列条件的数据发生更改也不会被记录 var ignores = { 'ignores': ['input[type="text"]', 'text'] }; // 使用name属性忽略 var ignore = { 'ignore': ['name', 'id', 'email'] } // filter,过滤器,对值进行操作,如:"小明 ".trim() --->> "小明" // filter 在formGG初始化的时候就会被调用,form表单的初始值会被该方法处理 var filter = { 'filter': [{ 'fun': 'trim()', 'rtn': 0 // 表示到此结束,不会向下执行 1表示继续执行 }, { 'ignore': true, 'fun': 'split(" ").jion("")', 'rtn': 0 }] } // 使用多个配置 var config = { 'ignore': ['name', 'id', 'email'], 'filter': [{ 'fun': 'trim()', 'rtn': 0 }] } var gg = $("form").GG(config); console.log(gg.options); console.log("===============") $('#btn1').click(function() { console.log("form表单更改的值==========="); console.log(gg.getChanged()); }) ```