第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將整個表單作為數(shù)據(jù)傳遞到jQuery Ajax函數(shù)中

將整個表單作為數(shù)據(jù)傳遞到jQuery Ajax函數(shù)中

白板的微信 2019-10-25 14:49:38
我有一個jQuery ajax函數(shù),想提交一個完整的表單作為發(fā)布數(shù)據(jù)。我們正在不斷更新表單,因此不斷更新應該在請求中發(fā)送的表單輸入變得很乏味。
查看完整描述

3 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

如果要使用post方法發(fā)送表單,serialize()并不是一個好主意。例如,如果您想通過ajax傳遞文件,它將無法正常工作。


假設我們有一個ID為“ myform”的表單。


更好的解決方案是制作一個FormData并將其發(fā)送:


    var myform = document.getElementById("myform");

    var fd = new FormData(myform );

    $.ajax({

        url: "example.php",

        data: fd,

        cache: false,

        processData: false,

        contentType: false,

        type: 'POST',

        success: function (dataofconfirm) {

            // do something with the result

        }

    });


查看完整回答
反對 回復 2019-10-25
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

通常serialize()在form元素上使用。


請注意,多個<select>選項在同一鍵下序列化,例如


<select id="foo" name="foo" multiple="multiple">

    <option value="1">one</option>

    <option value="2">two</option>

    <option value="3">three</option>

</select>

將導致一個查詢字符串,其中包含多次出現(xiàn)相同的查詢參數(shù):


[path]?foo=1&foo=2&foo=3&someotherparams...

這可能不是您在后端中想要的。


我使用此JS代碼將多個參數(shù)簡化為以逗號分隔的單個鍵(在John Resig所在的線程中從評論者的響應中無恥地復制):


function compress(data) {

    data = data.replace(/([^&=]+=)([^&]*)(.*?)&\1([^&]*)/g, "$1$2,$4$3");

    return /([^&=]+=).*?&\1/.test(data) ? compress(data) : data;

}

上面的內容變成了:


[path]?foo=1,2,3&someotherparams...

在您的JS代碼中,您可以這樣稱呼它:


var inputs = compress($("#your-form").serialize());

希望能有所幫助。


查看完整回答
反對 回復 2019-10-25
  • 3 回答
  • 0 關注
  • 592 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號