N个input,如何检测 值/属性 有变化的才提交后台?无变化的不提交

ajun_code 发布于 2016/09/08 09:57
阅读 742
收藏 0

<input type="text"/>
<input type="text"/>
<input type="text"/>
<input type="checkbox"/>
<input type="checkbox"/>
<input type="checkbox"/>
<input type="radio"/>
<input type="radio"/><button>确定</button>
9个input,修改用户资料,点确定后只有input改变了 值/属性 才提交给后台
(如果全部提交的话,没修改的input提交后台没意义,浪费资源)?

以下是问题补充:

@ajun_code:相当于QQ中的修改资料信息!!修改之前应该从后台拿到东西,然后用户修改,再把修改了的input提交后台!! (2016/09/08 10:28)
加载中
0
speedhao
speedhao

给你一个思路,这样

给每个input加上两个属性,dataValue和isChange

dataValue放默认值,isChange是一个标记,默认0

然后给input统一添加onChange方法,里面判断修改后的值是否与dataValue相等,不相同就将isChange置为1

提交时的时候判断isChange是1的才提交,后台提交什么修改什么

ajun_code
ajun_code
回复 @speedhao : cordova啊....... 谢了
speedhao
speedhao
回复 @ajun_code : 你用的什么mvc框架?百度!百度!百度!
ajun_code
ajun_code
回复 @speedhao : 有没有ajax和Java交互的例子,搞个来瞅瞅
speedhao
speedhao
回复 @ajun_code :ajax提交到java和php一样一样的,你只要把数据在js端包装好,包装成一个对象,java解析的方式多种多样
ajun_code
ajun_code
回复 @speedhao : 目前思路就是,Java给我一个json,我把input里值/属性,拿去和这个json比较,有不同再传给Java
下一页
0
skhuhu
skhuhu
性价比 ···· 是每个input做校验还是简单的再插一遍  
ajun_code
ajun_code
都可以呀,大神怎么做?
0
IdleMan
IdleMan

1.拷贝一个副本,提交前一一比较;

2.每个input对应一个valueChange的函数,变更时相关变量设置为true,提交时一一比较;

ajun_code
ajun_code
没懂,我有很多input。。。
0
游客
游客
onblur()判断是否发生变化
ajun_code
ajun_code
回复 @游客 : 我貌似知道了 不会数据持久化 ...
游客
游客
页面加载时,input的值肯定是要缓存的,其次,是提交的时候逐一比较,还是input失去焦点就比,你要自己拿捏,最后,需求有点怪异,难道你的数据没有持久化?
ajun_code
ajun_code
onblur()不是判断失去焦点吗?怎么能判断input是否变化呀
0
IdleMan
IdleMan

引用来自“IdleMan”的评论

1.拷贝一个副本,提交前一一比较;

2.每个input对应一个valueChange的函数,变更时相关变量设置为true,提交时一一比较;

推荐法1,法2不支持 1->2->1这种情况。

法1:加载页面时把原始值存储为json/变量/数组,提交时与页面的输入值比较

ajun_code
ajun_code
回复 @IdleMan : nice,多谢!
IdleMan
IdleMan
回复 @ajun_code : 那你就得想传入一个form根据input的name与json的key自动比较啊,没必要一个input一个代码
ajun_code
ajun_code
和楼下是一个道理。我有一百多个input!感觉这杨做好麻烦。。。