簡體   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