jQuery:serialize()表单和其他参数

时间:2012-05-01 14:01:27

标签: jquery ajax forms serialization

是否可以使用单个AJAX请求发送表单元素(使用.serialize()方法序列化)和其他参数?

示例:

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

如果不是什么是提交表格和其他参数的最佳方式?

由于

8 个答案:

答案 0 :(得分:205)

serialize()有效地将表单值转换为有效的查询字符串,因此您只需附加到字符串:

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

答案 1 :(得分:68)

或者,如果将params存储在某个对象变量中,则可以将form.serialize()$.param(object)一起使用。用法是:

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

有关详细信息,请参阅http://api.jquery.com/jQuery.param

答案 2 :(得分:0)

你可以使用jQuery创建一个辅助表单和另一个表单的内容,然后将其添加到其他参数中,这样你只需要在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()
}

答案 3 :(得分:0)

如果您要发送带有序列化表格的数据,则可以尝试

var form= $("#formId");
$.ajax({
    type: form.attr('method'),
    url: form.attr('action'),
    data: form.serialize()+"&variable="+otherData,
    success: function (data) {
    var result=data;
    $('#result').attr("value",result);

    }
});

答案 4 :(得分:0)

您也可以使用serializeArray函数执行相同的操作。

答案 5 :(得分:0)

通过这样的参数值

data : $('#form_id').serialize() + "&parameter1=value1&parameter2=value2"

以此类推。

答案 6 :(得分:0)

Rory McCrossan 答案之后,如果要发送整数的数组(几乎是.NET),则代码如下:

// ...

url: "MyUrl",       //  For example --> @Url.Action("Method", "Controller")
method: "post",
traditional: true,  
data: 
    $('#myForm').serialize() +
    "&param1="xxx" +
    "&param2="33" +
    "&" + $.param({ paramArray: ["1","2","3"]}, true)
,             

// ...

答案 7 :(得分:-2)

我用under语句解决了这个问题; 使用url发送数据与GET方法相同

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

并使用$_REQUEST['value']$_GET['id']

获取价值