我有一个表单,我通过JQuery ajax函数发布。 申请流程如下:
我要比较的表单字段:
<input name="option[<?php echo $cmd1; ?>]" type="text">
<input name="option[<?php echo $cmd2; ?>]" type="text">
<input name="option[<?php echo $cmd3; ?>]" type="text">
<input name="option[<?php echo $cmd4; ?>]" type="text">
我想只发布已更改的输入值。
将以前的表单提交与当前表单提交进行比较的代码(上一次提交保存在数组tmpArray
中:
var fields = $('.option').serializeArray();
var n = 0;
jQuery.each( fields, function( i, field ) {
if(field.value === tmpArray[n]){
console.log(field.value+" : "+tmpArray[n]+ " TRUE");
} else {
console.log(field.value+" : "+tmpArray[n]+ " FALSE");
}
n++;
});
提交表单的ajax函数:
jQuery.ajax({
type:'POST',
async: true,
cache: false,
url: '/Controller/'+action,
success: function(response) {
jQuery('#resultField').val(response);
},
data: jQuery('form').serialize()
});
如果它们与('form').serialize()
中的值匹配,是否还有(或更好的方法)从每个()循环中的tmpArray
结果中删除值?
任何建议都将不胜感激!
答案 0 :(得分:0)
请查看以下帖子,它可以回答您的问题。
答案 1 :(得分:0)
你可以试试,
var tempArray=[];
var tempArrayString = JSON.stringify(tempArray);
var values = $('.option').serializeArray();
values = values.filter(function(field){
return tempArrayString.indexOf(JSON.stringify(field))==-1;
});
if(values.length>0){
tempArray = values;//or something
}