javascript - form表单提交数据怎么判断表单里的数据没有更改过?
阿神
阿神 2017-04-11 11:32:36
[JavaScript讨论组]

就是说我要做表单编辑功能,里面有很多的数据,有 这些,如果我没有改过里面的数据,然后就提交表单,做一个提示“编辑失败或数据没有更改过”,

在这过过程中怎么判断表单里的数据没有更改过,

阿神
阿神

闭关修行中......

全部回复(9)
怪我咯

如果只考虑是否操作过,也就是说换过一次,再换回来也算更改过:做onChange绑定,只要有一个onChange被调用,把一个flag设为true就好了。

ringa_lee

post之后的数据md5加密就好啦,做一个数据表存储这个加密的编码,如果连续两次一样,那么可以肯定这个表单跟之前的表单提交的数据一样,这个时候就可以判断得到了。但是我不建议你这样做。
如果你只是为了避免表单重复提交,参考这里。
php表单加入Token防止重复提交

黄舟

这个事是目前我遇到最恶心的需求了。用lodash吧,进入页面先科隆一份数据,然后再用lodash的match方法进行比较。

高洛峰

页面加载后获取这些元素的值,提交的时候比对一下。

ringa_lee

保存一份初试的表单数据,放在一个object里面,当提交的时候,再获取一下当前表单的数据,放在另外一个object里,再手动对比一下这两个object

PS: 如果用react, vue, angular处理这类问题就比较简单了,因为他们都是操作的数据,数据的对比很简单。

怪我咯

初始的时候放一个hidden的input,value是原始值,提交后比较下原始值和提交的数据

迷茫

简单的方法是监听所有表单元素的change事件,但是如果某个值被改了之后又恢复了,就不好说了。
再就是把表单所有值序列化后哈希,然后需要的时候比较哈希值,就知道数据是否发生了变化。这个哈希值可以放在前端,但是这样能不安全,因为任何前端的验证都是不可信的。所以如果要求高的话,可以放在服务器端,待表单提交后在服务器端验证。

PHP中文网

如果是PHP 那么你的判断方式有误 因为很多时候更新是用execute 而这个则是返回的是受影响的行数失败则会出错,如果是没有改变数据就去更新,那么得到的会是1个0,所以,你的判断是有问题的. 只需要全等于false即可解决这个错误

PHPz

首先题主是编辑数据,那么,被编辑的数据应该先发送到页面上,类似TP的$this->assign('name',$value);,建议在做这个操作之前,先对(array)$value进行md5,将md5值存在session里,在用户提交数据的时候,先对提交上来的数据进行md5,然后跟session中的MD5进行对比,相同即用户没有编辑数据

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号