$.fn.serializeObject对为disabled属性的失效
问题现象:
在查生产tomcat下的localhost日志时,发现今天的记录有不少次都报org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 15005该异常。
问题分析:
经查异常轨迹看到是某个查询要传的参数为空导致了全表查询,经过反向搜索页面请求入口,定位到了某个页面在进行初始化时在满足条件的情况下会执行此请求到后台;
该请求传的参数是进行form表单序列化后得到的处理结果,那么就可以确定了序列化返回的结果内该参数没有值;然后结合页面查看该参数的input内容发现为disabled属性,此时猜测序列化的处理对disabled的失效;那么就看下该序列化参数方法是如何执行的,此js方法是重写了该内容进行了细微处理,大体未变
;在循环内加上了页面日志打印,经过操作发现没有打印期望看到的name名称,那么可以进一步确认是上一步的var a = this.serializeArray()此方法返回结果不是所期望的;经过全局搜索该方法查到了jQuery-1.11.1,js此原生js文件内,
看完此处的写法后就知道了serializeArray方法内对为disabled属性的进行了过滤,那么所期望的结果里该字段就不会有值了。
问题定论:
经过上述排查经过,得知js的serializeArray方法会将disabled属性的内容剔除掉,导致$.fn.serializeObject序列化表单参数对象的方法返回的内容也是不含disabled属性的。
调整方式:
将input内容可以设置为readonly属性,或者序列化表单之前将disabled形式去掉,结束后在还原。
随机推荐
- el-table翻页序号不从1开始(已解决)
法一:赋值方式(亲测有效) <el-table-column type="index" fixed="left" align="center&q ...
- js实现小数点四舍五入
js实现小数点四舍五入 其实这个问题,在之前的面试中被提问到了,由于笔者平时都是用原生的toFixed()的方法来保留小数点,所以当时并没有回答出来这个问题,呜呜呜~.~
- 1471 - Defense Lines
After the last war devastated your country, you - as the king of the land of Ardenia - decided it wa ...
- linux 基于 jiffy 的超时
到目前为止所展示的次优化的延时循环通过查看 jiffy 计数器而不告诉任何人来工作. 但是最好的实现一个延时的方法, 如你可能猜想的, 常常是请求内核为你做. 有 2 种方 法来建立一个基于 jiff ...
- 使用 node.js三行代码实现手机端访问html页面文件
首先确保你安装了node (全局安装) npm install -g browser-sync // --files 路径是相对于运行该命令的项目(目录) browser-sync start --s ...
- 一道非常棘手的 Java 面试题:i++ 是线程安全的吗
转载自 一道非常棘手的 Java 面试题:i++ 是线程安全的吗 i++ 是线程安全的吗? 相信很多中高级的 Java 面试者都遇到过这个问题,很多对这个不是很清楚的肯定是一脸蒙逼.内心肯定还在质疑 ...
- 天使玩偶/SJY摆棋子
P4169 [Violet]天使玩偶/SJY摆棋子 CDQ分治的题目. 我们发现题目要我们求的\(|A_x-B_x|+|A_y-B_y|\)的绝对值号比较恶心. 试想一下怎么去掉 如果所有的点都在我们 ...
- Python 实现栈与队列
#基于Python2.7 #基于顺序表实现 #发现用Python写题时,没有像写C++时方便的STL可用,不过查阅资料之后发现用class实现也很简洁,不过效率应该不是很高 Python实现栈并使用: ...
- WebGPU学习(十):介绍“GPU实现粒子效果”
大家好,本文介绍了"GPU实现粒子效果"的基本思想,并推荐了相应的学习资料. 本文学习webgpu-samplers->computeBoids示例,它展示了如何用compu ...
- Centos 7.5安装 Redis 5.0.0
1 我的环境 1.1 linux(腾讯云) CentOS Linux release 7.5.1804 (Core) 1.2 Redis Redis 5.0.0 2 下载 官网 官网下载地址 3 ...