jQuery:可以使用object和serialize来传递参数吗?

时间:2011-08-11 22:06:30

标签: javascript jquery ajax post

    $.post('/ur.l'
          , jQuery('selectors').serialize() 
                               + '&textareaname=" + escape( $("#textarea").val() )
          , function(data) { ... } 
          }
    );

    $.post('/ur.l'
          , {'foo':'bar', 'foobar','qazbar'}
          , function(data) { ... }
    );

问题

  1. 是否可以将对象合并到{...} jQuery序列化?
  2. jQuery似乎没有序列化textareas,有没有比上面更好的方法? 我已经尝试过看到textarea在jQuery对象中,但文本是空白的:

    jQuery('input, textarea').serialize()
    

2 个答案:

答案 0 :(得分:4)

  1. jQuery.param会将对象序列化为url编码的字符串。然后,您可以将它们组合在一起。

  2. serialize 适用于textareas。确保textarea上有一个有效的名称,并且它没有被禁用。

答案 1 :(得分:0)

你应该尝试给你的表单一个id并通过它参考表单参数。例如,如果您的表单具有#form的id。

$("#form").submit( function () {    
    $.post(
   'ur.l',
    $(this).serialize(),
    function(data){

    });
    return false;   
  });   
});

和$(this)将是所有表单参数的内容。如果您还没有这样做,请查看标题。