如何将可变数量的字段传递给.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并循环遍历它们,手动创建字符串,我不知道该怎么做。
答案 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()插件。