繁体   English   中英

在ajax请求之前从帖子中删除数据

[英]remove data from post before ajax request

我有一个通过JQuery ajax函数发布的表单。 该应用程序的流程如下:

  1. 用户填写表格并提交
  2. 发布表单后,数据将保存在临时数组中
  3. 如果表单已经提交,我只想发送在新提交中已更改的数据

我要比较的表单字段:

<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中的值匹配)在each()循环中?

任何建议将不胜感激!

请检查以下帖子,它可能会回答您的问题。

jQuery从序列化数组中删除项目

你可以试试看

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
    }

http://jsfiddle.net/33dh2/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM