2012-05-01 100 views
76

是否有可能發送一個form.serialize()對象和其他參數與一個$.ajax()請求?jquery form.serialize和其他參數

例子:

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : { 
     $('#form').serialize(), 
     par1 : 1, 
     par2 : '2', 
     par3: 232 
    } 
} 

如果沒有什麼對與其它參數一起提交表單的最佳途徑。

感謝

回答

159

serialize()有效地把表單值成一個有效的查詢字符串,因爲這樣你可以簡單地添加到字符串:

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232" 
} 
+10

非常感謝哥哥椰子 – Falcon

+6

@Falcon你是什麼意思做*椰子*在這裏? – Shafizadeh

+0

我怎樣才能改變1變量 –

55

另外,您可以用$ .PARAM使用form.serialize() (對象)如果你存儲你的參數在一些對象變量。用法如下:

var data = form.serialize() + '&' + $.param(object) 

查看http://api.jquery.com/jQuery.param作進一步參考。

+8

我喜歡這一款。這意味着我不必看一個醜陋的查詢字符串! –

+0

是好多了 – JSHelp

+4

這是更好的方法,到目前爲止。被接受的答案是混亂的,不應該在任何生產應用中使用。 – FastTrack

5

我不知道,但沒有上述工作對我來說的話,我用這個和它的工作:

在形式的序列化陣列被存儲爲鍵值對

我們推新的值這裏是表單變量,然後我們可以直接傳遞這個變量。

var form = $('form.sigPad').serializeArray(); 
var uniquekey = { 
     name: "uniquekey", 
     value: $('#UniqueKey').val() 
}; 
form.push(uniquekey); 
0

您可以創建使用jQuery與其他形式的內容的附配的形式,然後添加thath形式等PARAMS,所以你只需要序列化的Ajax調用。

function createInput(name,value){ 
    return $('<input>').attr({ 
     name: name, 
     value: value 
    }); 
} 
$form = $("<form></form>"); 
$form.append($("#your_form input").clone()); 
$form.append(createInput('input_name', 'input_value')); 
$form.append(createInput('input_name_2', 'input_value_2')); 
.... 

$.ajax({ 
    type : 'POST', 
    url : 'url', 
    data : $form.serialize() 
} 
-1

我使用under語句解決了問題; 發送數據與URL相同的GET梅索德

$.ajax({ 
    url: 'includes/get_ajax_function.php?value=jack&id='+id, 
    type: 'post', 
    data: $('#b-info1').serializeArray(), 

,並獲得價值與$ _REQUEST [ '值']或$ _GET [ '身份證']