[转]javascript 判断某页面上的表单数据是否改变过

本文介绍了一种方法,用于在页面数据修改时执行特定操作。通过页面加载事件记录初始数据,并在需要时检查数据是否发生变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<p><span style="font-size: 10pt;">本文转自:</span><a href="http://info.codepub.com/2008/09/info-22582.html" target="_blank"><span style="font-size: 10pt;">http://info.codepub.com/2008/09/info-22582.html</span></a></p><p><span style="font-size: 10pt;">原文如下:</span></p><div class="t_msgfont" id="postmessage_2830"><span style="font-size: 10pt;">使用场合:当某个页面数据修改时,需要执行某些操作时 <br>在页面的body加载事件(onload)中加上initfileds()就可以记录页面的初始数据<br>在需要判断页面数据是否改变时调用checkmodification()方法就可判断数据是否改变<br>返回值为true就是已经改变<br>返回值为false就是没有改变<br><br> // 页面编辑数据<br> var inputsdata;<br> var textareasdata;<br> var selectsdata;<br> // 记录下表单中的原始值<br> function initfileds() {<br> var inputs = document.getelementsbytagname("input");<br> var textareas = document.getelementsbytagname("textarea");<br> var selects = document.getelementsbytagname("select");<br> inputsdata = new array(inputs.length);<br> for (var i=0;i<inputs.length;i++) {<br> inputsdata[i] = inputs[i].value;<br> if (inputs[i].type=="radio") {<br> inputsdata[i]=inputs[i].checked;<br> }<br> }<br> textareasdata = new array(textareas.length);<br> for (var i=0;i<textareas.length;i++) {<br> textareasdata[i] = textareas[i].value;<br> }<br> selectsdata = new array(selects.length);<br> for (var i=0;i<selects.length;i++) {<br> selectsdata[i] = selects[i].value;<br> }<br> }<br> /*<br> * 判断表单中值是否被修改了<br> * submitcommand 表单有改动时,执行的javascript代码<br> */<br> function checkmodification(submitcommand) {<br> var inputs = document.getelementsbytagname("input");<br> var textareas = document.getelementsbytagname("textarea");<br> var selects = document.getelementsbytagname("select");<br> var hasbeenchanged = false;<br> for (var i=0;i<inputs.length;i++) {<br> if (inputs[i].type=="radio"&&(inputs[i].checked!=inputsdata[i])) {<br> hasbeenchanged = true;<br> inputsdata[i]=inputs[i].checked;<br> }<br> if (inputs[i].type!="radio"&&inputsdata[i]!=inputs[i].value) {<br> if(inputs[i].name!="actiontype"){<br> hasbeenchanged = true;<br> }<br> inputsdata[i]=inputs[i].value;<br> }<br> }<br> for (var i=0;i<textareas.length;i++) {<br> if (textareasdata[i]!=textareas[i].value) {<br> hasbeenchanged = true;<br> textareasdata[i]=textareas[i].value;<br> }<br> }<br> for (var i=0;i<selects.length;i++) {<br> if (selectsdata[i]!=selects[i].value) {<br> hasbeenchanged = true;<br> selectsdata[i]=selects[i].value;<br> }<br> }<br> if (hasbeenchanged&&confirm("数据已经改变,是否保存?")) {<br> eval(submitcommand);<br> }<br> }</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值