如何查找被修改的输入字段
How to find which input field is modified?
我有几个输入字段和值。这是投影给用户的。用户可以修改这些值并提交它们。当提交时,我需要检查哪些输入字段被修改了。
我可以比较以前的字段和当前字段并检查。但我正在努力寻找更优化的方法来做到这一点。我可以使用javascript, php, jquery和html技巧
<input id="input1" value="someValue" type="text">
<input id="input2" value="someValue" type="text">
脚本:
$('input').on('change',function(){
var id = $(this).attr('id');
alert("input field is modified : ID = " + id);
});
您可以创建2个不同的输入,一个隐藏的类,如originalVal
和一个可见的每个输入。
然后在提交时做这样的操作:
$('input').each(function(){
var currentVal = $(this).val();
var originalVal = $(this).closest('.originalVal').val()
if(currentVal != originalVal){
//This input has changed
}
})
由于没有给出代码,您可以将输入中的内容与现在的内容进行比较。
HTML输入:<input type="text" id="testInput" value="DB Value"/>
jQuery var modifiedInputs = [];
var oldVal = "";
$("#testInput").focus(function() {
oldVal = this.value;
}).blur(function() {
console.log("Old value: " + oldVal + ". New value: " + this.value);
//If different value, add to array:
if (this.value != oldVal) {
modifiedInputs.push(this.id);
}
});
小提琴:http://jsfiddle.net/tymeJV/tfmVk/1/
Edit:更进一步,在修改输入时,如果修改后的值与原始值不同,则将元素ID压入数组。
我认为最好的办法是从输入字段中获取初始值,然后稍后再对它们进行比较。然后,只需在单击提交按钮后进行比较。例如,把它放在$(document).ready()中的某个地方,这样它就会检索初始值。
var oldValue=[];
$('input').each(function(){
oldValue.push($(this).val());
});
然后你可以在点击提交时进行比较。
你可以像这样与默认值比较
for(var i in formObj)
if('value' in formObj[i] && formObj[i].value!=formObj[i].defaultValue){
//do what ever here ...
}
相关文章:
- 绑定Range输入以修改样式
- 使用用户输入修改链接
- 如何从输入 JQuery 或 javascript 中获取修改后的文本
- 选择单选输入时修改占位符属性
- 修改序列化表单函数以获取输入ID而不是名称
- 修改隐藏输入中的json数组
- 如何通过单击javascript中的按钮来修改输入数字字段
- 修改输入中的数组,然后返回输出
- 在javascript中的page ready中查找输入值修改的来源
- 计算html输入字段并允许用户修改所述字段
- 角度输入修改 - 设置形式 prestine
- 获取由使用 webkitbrowser 注入的 JavaScript 修改的输入文本的值时出错
- 挖空文本输入修改可观察不更新文本
- AngularJs - 修改输入格式的指令
- 如何从输入类型=文件获取数据,修改它,然后将其插入到此输入JS中
- 我可以't使我的线条粗细对修改后的输入做出正确响应
- 修改输入中的值时的Shot事件
- 允许人们只修改输入JavaScript中的某些值
- js修改输入并打印到.xls
- D3.csv修改输入数据