我有几个输入字段和值。这是投射给用户的。用户可以修改这些值并提交它们。提交时,我需要检查修改了哪个输入字段。
我可以比较以前的字段和当前字段并检查。但我正在努力寻找更优化的方法来做到这一点。我可以使用 javascript、php、jquery 和 html 技巧
我有几个输入字段和值。这是投射给用户的。用户可以修改这些值并提交它们。提交时,我需要检查修改了哪个输入字段。
我可以比较以前的字段和当前字段并检查。但我正在努力寻找更优化的方法来做到这一点。我可以使用 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 个不同的输入,1 个隐藏在一个类中originalVal
,1 个对每个输入可见。
然后在提交时你做这样的事情:
$('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/
编辑:更进一步,在修改输入时,如果更改的值与原始值不同,它将元素 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 ...
}