如何校验页面内容修改,修改的保存,未修改不保存

jsbuzhidao 2016-08-07 10:11:36

<body>
<div>
<input type="text" id="input1" value="123"/>
</div>
<div>
<input type="text" id="input2" value="你好"/>
</div>
<div>
<input name="checkbox" type="checkbox" value="1"/>语言
<input name="checkbox" type="checkbox" value="2" checked/>数学
<input name="checkbox" type="checkbox" value="3" checked/>英语
<input name="checkbox" type="checkbox" value="4" />美术
</div>
<div>
<input name="radio" type="radio" checked/>男
<input name="radio" type="radio"/>女
</div>
<div>
<select id="select">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
<input type="button" value="保存"/>
</body>

请问保存的时候,如何根据值是否修改作出相应的处理
所有内容都是从cgi获取解析到页面中的,只是列出这几项,可能会有很多选项,
方法一把内容先临时保存起来,点击按钮保存的时候在一个个比较这种方法肯定可行,但非常麻烦

所以有没有别的更方便的办法能够做到这点,谢谢
...全文
563 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡鱼_ 2016-08-08
  • 打赏
  • 举报
回复
text,hidden,textarea,button:它们对值有一个内置属性:defaultValue radio,checkbox:它们对值有一个内置属性:defaultChecked select又分为[select-one和select-multiple]两种,它们对值有一个内置属性:defaultSelected 你当然也可以通过这种方法去比对,但不会比你说的”方法一把内容先临时保存起来,点击按钮保存的时候在一个个比较这种方法肯定可行,但非常麻烦“更方便 有需求时,小量数据,你完全可以先取后比对!但是你这个比对的过程可以改一下!没有必要把新表单的值全部取完了再去和cgi取来的数据去比较!你应该在取数据时就做一个单项对比,给个全局变量[比如:formChanged]保存是否有数据更新,如果有,此变量值为true。 然后:formChanged==true时,单项值的比对就跳过。这样,就可以保证效率了!因为既然已经检测到了有数据的更新,后面的自然可以不用对比了 如果,只是要传输被更新的值,那就在单项值对比时,变更的才存储,发送。 就完事了
jsbuzhidao 2016-08-08
  • 打赏
  • 举报
回复
现在的方法就是初始化获取的时候把值记下来,保存到对象或数组里,然后保存的时候数组里的值和标签元素里的值做比较。相同则不发送这内容。但是页面有很多内容的情况下,就要判断很多,所以想的是有没有更简便的方法. 目的是:例如input1标签初始化获取的内容是123,修改后的内容是456,保存的时候只把这456传给后端,其余标签都不发送,同理修改两个或多值值的时候,把相应修改的标签内容发给后端
u_fzp 2016-08-08
  • 打赏
  • 举报
回复
你可以在页面上定义一个数组,在后台传过来数据的时候就把这些数据按照一定顺序放到数组中,用户修改点击保存的同时将修改后的值获取下放到另一个数组中,最后判断这两个数组是否相等就能知道是否修改了
一陀牛屎 2016-08-08
  • 打赏
  • 举报
回复
加一个取消按钮不行吗?你的保全是想干麻用?数据传到后台?
jsbuzhidao 2016-08-07
  • 打赏
  • 举报
回复
引用 1 楼 oONukeOo 的回复:
给元素添加默认属性 ischange=false , 然后元素change事件中修改ischange属性为true,保存的时候获取ischange为true的元素个数就能确定了。
你好,这种方法不也需要给每个元素都添加change事件吗,在一个如果修改了ischange为true,但是如果先修改了然后保存前又把刚才修改的内容改回原来的数据呢,这时候这个元素的内容就相当于没有改变的,会有这样问题吧?
萨拉嘿 2016-08-07
  • 打赏
  • 举报
回复
给元素添加默认属性 ischange=false , 然后元素change事件中修改ischange属性为true,保存的时候获取ischange为true的元素个数就能确定了。

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧