在jQuery的Load中发送可变数量的字段

时间:2011-07-29 13:01:53

标签: javascript jquery ajax search

如何将可变数量的字段传递给.load()的第二个参数?我试图用ajax增强我的搜索,并一直关注Symfony的Jobeet tutorial。不幸的是,除了文本字段之外,我还有一个我希望传递的隐藏字段列表。我不能serialise所有表单的输入,因为我必须首先对文本字段执行操作。

该功能如下所示:

$('#search').keyup(function(key)
{
  // do something to the value
  var query = this.value;

  $('#results').load(
    $(this).parents('form').attr('action'),
    // pass query along with all hidden fields
    { query: query, /* variable number of hidden input fields go here */ }
  );
}

一个选项可能是序列化除“搜索”输入之外的所有字段,附加修改后的query变量并传递该字符串。但是,如果没有getting all fields并循环遍历它们,手动创建字符串,我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

您可以在循环中构建对象:

var params = { query: query };
$('#form input[type="hidden"]').each(function() {
    params[this.name] = $(this).val();
});

$('#results').load(
    $(this).parents('form').attr('action'), params
);

答案 1 :(得分:0)

我认为您可以使用serializeObject()插件。