【问题标题】:How to use dynamic data name with jQuery.post?如何在 jQuery.post 中使用动态数据名称?
【发布时间】:2013-03-29 08:48:49
【问题描述】:

我有 2 种用于转换数据的基本形式(类型 1 类型 2)。

我只想使用 1 个表单来完成我的 .post 请求。

jquery.post 的 [data] 参数有问题

这是我的代码:

$('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

【问题讨论】:

    标签: javascript jquery web-services post


    【解决方案1】:

    试试这个:

    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());
        });
    });
    

    【讨论】:

      【解决方案2】:

      是的,使用其他东西来发布数据:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-27
        • 2017-09-30
        • 1970-01-01
        • 1970-01-01
        • 2018-03-03
        • 1970-01-01
        • 2016-03-02
        • 1970-01-01
        相关资源
        最近更新 更多