如何在jQuery.post中使用动态数据名?

时间:2011-05-24 16:59:10

标签: javascript jquery web-services post

我有2个用于转换数据的基本表单(类型1< - >类型2)。

我想只使用1个表单来执行.post请求。

我遇到了jquery.post的

这是我的代码:

$('form').submit(function(){
    var a = $(this).parent().find("input").attr('name');
    var b = $(this).parent().find("input").val();
    var url = $(this).attr('action')
    $.post(url, { a:b },function(data) {
        $(data).find('string').each(function(){
            $('.result').html($(this).text());
        });
    });
    return false;
});     

问题出在{a:b}之内。 b被解释为我的var b,但a不是,使我的帖子参数类似[a:1]而不是[param:1]

有没有办法让动态a

2 个答案:

答案 0 :(得分:7)

试试这个:

var data = {};
data[a] = b;
$.post(url, data, function(data) {

所以这样:

$('form').on('submit', function (e) {
    e.preventDefault();

    var data = {};
    var el = $(this);
    var input = el.parent().find('input');

    var a = input.attr('name');
    var b = input.val();
    var url = el.attr('action');

    data[a] = b;

    $.post(url, data, function(data) {
        $(data).find('string').each(function(){
        $('.result').html($(this).text());
    });
});

答案 1 :(得分:3)

是的,请使用其他内容进行数据发布:

$.post(url, a+"="+b,function(data) {
    $(data).find('string').each(function(){
        $('.result').html($(this).text());
    });
});