以下使用jQuery.fn.each
来构建将包含JSON对象的变量。问题是添加到数组会导致JavaScript错误。
var formfields = { step: $(this).data('step') }
$(this).parent().parent().parent().find('input').each(function(){
formfield += $(this).attr('name'):$(this).val(); // This line is the problem
});
alert(form fields);
如何做到这一点。
答案 0 :(得分:0)
您需要使用bracket notation
var formfields = {
step: $(this).data('step')
}
$(this).parent().parent().parent().find('input').each(function () {
formfield[$(this).attr('name')] = $(this).val(); // This line is the problem
});
alert(JSON.stringify(formfield)); //use console.log() instead of alert()
this.name
来访问输入的名称,而不是使用$(this).attr('name')
答案 1 :(得分:0)
试试这个
var formfields = {step: $(this).data('step')};
$(this).parent().parent().parent().find('input').each(function () {
formfields[$(this).prop('name')] = $(this).val();
});
console.log(formfields);
答案 2 :(得分:0)
以下是使用serializeArray()
的替代方法:
var formfields = { step: $(this).data('step') };
var formfieldsarray = $(this).parent().parent().parent().find('input').serializeArray();
$.each(formfieldsarray, function() {
formfields[this.name] = this.value;
});