你好假设我在页面上有两个表单。
现在我想获取所有输入元素(即使它们被隐藏)。
我现在的代码如下:
$("form.prev, form.next").submit(function(e){
e.preventDefault();
var inputs = $(this).filter(':input');
console.log(inputs);
var values = {};
inputs.each(function() {
values[this.name] = $(this).val();
});
console.log(values);
});
我希望看到输入元素的列表及其键和值。但console.log(values);
的结果是一个空对象
这里出了什么问题?
答案 0 :(得分:2)
无需亲自执行此操作 - serialize()
功能是为此目的而发明的。
$("form.prev, form.next").submit(function(e){
e.preventDefault();
var data = $(this).serialize();
// data is a key/value string, you can now use it in AJAX requests for example
});
答案 1 :(得分:1)
试试这个:使用.find()
代替.filter()
$("form.prev, form.next").submit(function(e){
e.preventDefault();
var inputs = $(this).find(':input');
console.log(inputs);
var values = {};
inputs.each(function() {
values[this.name] = $(this).val();
});
console.log(values);
});