记录文本框内容的动态变化
2017-01-05 14:28
429 查看
有一个需求,呈现在用户面前的一个表格,里面的内容可以反复修改,当用户修改里面的内容之后,如何知道用户改了哪个地方的内容以及这个地方的原始值和改变之后的值,下面就是一种实现方案。
<table border="1" cellspacing="0" cellpadding="2"> <tr> <td>Data1</td> <td><input type="text" value="123" /></td> <td>Data2</td> <td><input type="text" value="124" /></td> </tr> <tr> <td>Data3</td> <td><input type="text" value="125"/></td> <td>Data4</td> <td><input type="text" value="126" /></td> </tr> <input type="checkbox" value="1" name="sel"/>123 <input type="checkbox" value="2" name="sel"/>456 <input type="checkbox" value="3" name="sel"/>789 <input type="checkbox" value="4" name="sel" />753 </table> <button onclick="sel()">提交</button>
这个是对文本框值改变的记录 var obj={}; var arr1=[];//得到焦点时存放原始值 var arr2=[];//失去焦点时存放改变之后的值 var arr3=[];//得到焦点时存放修改的那个地方 $('input[type=text]').on('focus',function(){ arr1.push($(this).val()); arr3.push($(this).parent().prev().text()); }); $('input[type=text]').on('blur',function(){ arr2.push($(this).val()); }); $('button').on('click',function(){ for(var i=0;i< arr1.length;i++){ //判断这个地方是否被修改过 if(!obj[arr3[i]]){ obj[arr3[i]] = {'key':arr3[i],'first':arr1[i],'laster':arr2[i]}; }else{ //如果修改过,则存放最终的修改值 obj[arr3[i]]['laster'] = arr2[i]; }; }; var arr=[]; //将上面合成的对象再转化为数组,便于遍历显示想要的结果 for(var item in obj){ arr.push(obj[item]) }; var str=''; for(var i=0;i<arr.length;i++){ if(arr[i].first!=arr[i].laster){ str+=arr[i].key+'值的变化为:'+arr[i].first+'——'+arr[i].laster+','; } }; console.log(str); })
这个是对复选框改变时的记录 var names=document.getElementsByName('sel'); var arr6=[];//先前选中的 var arr7=[];//先前未选中的 for(var i=0;i<names.length;i++){ if(names[i].checked){ arr6.push(names[i].value) }else{ arr7.push(names[i].value) } } //改变之后的复选框状况 var arr4=[];//后来选中的 var arr5=[];//后来未选中的 var str1=''; function sel(){ for(var i=0;i<names.length;i++){ if(names[i].checked){ arr4.push(names[i].value) }else{ arr5.push(names[i].value) } } str1+='先前选中的值是:'+arr6+','+'先前未选中的值是:'+arr7+'后来选中的值是:'+arr4+','+'后来未选中的值是:'+arr5; console.log(str1) }
相关文章推荐
- c#:前台动态添加文本框,后台获取文本框内容
- C# RichTextBox高度随内容动态变化
- 内容随着下拉选项的动态变化
- Delphi CxCombobox 拦截滚轮事件,使之聚焦时文本框内的内容不随着滚轮的滚动而发生变化
- 页面内的内容随着时间动态变化
- Android中动态监听EditText控件内容变化
- 使用TextWatcher监听EditText的文本变化之后动态改变EditText里面的内容
- ListView内容变化后的动态刷新
- HTML文本框内容发生变化时引发事件执行
- datagrid中格子和字体颜色根据格子内容动态变化的实现
- select内容动态变化
- js 小技巧之监听文本框内容变化
- 动态设置报表中的文本框内容
- VBS随时监视注册表的变化,记录有变化的值或键等信息(包括一个文件内容比较函数)
- js实现前台动态添加文本框,后台获取文本框内容
- 【记录】用Javascript实现文本框textarea高度随内容自动适应增长收缩
- ASP.net中动态生成表格/文本框以及获取文本框内容的方法
- ListView内容变化后的动态刷新
- 根据文本框的内容,动态设置控件