Javascript 如何更改序列化对象输出格式?
我对javascript非常陌生,无法找到解决方案。 我有以下代码Javascript 如何更改序列化对象输出格式?,javascript,Javascript,我对javascript非常陌生,无法找到解决方案。 我有以下代码 <form class="edit-task-form"> <legend>Create Task</legend> <label>Task</label> <input type="text" name="task" /> <hr /> <button typ
<form class="edit-task-form">
<legend>Create Task</legend>
<label>Task</label>
<input type="text" name="task" />
<hr />
<button type="submit" class="btn">Create</button>
</form>
输出为:对象{task:“fasdfasd”} 我希望它是:Object{“task”:“fasdfasd”} 如何让“任务”出现在引号中 非常感谢 David一种解决方案:
$.fn.serializeObject=函数(){
var o={};
var a=this.serializeArray();
$.each(a,function(){
if(o[this.name]!==未定义){
如果(!o[this.name].push){
o[this.name]=['”+o[this.name]+'”];//您有这个函数:
您需要将其更改为:
只需将引号添加到键中即可您不需要手动将引号添加到对象的属性名称中,如果转换为JSON,则会自动添加引号;如果使用对象发送数据,则底层api只会将属性名称作为字符串发送。
var taskDetails = $(ev.currentTarget).serializeObject();
var task = new Task;
task.save(taskDetails, {
success: function(task) {
alert(task.toJSON());
}
});
console.log(taskDetails);
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if(o[this.name] !==undefined) {
if(!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
}
else {
o[this.name] = this.value || '';
}
});
return o;
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if(o[this.name] !==undefined) {
if(!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
}
else {
o[this.name] = this.value || '';
}
});
return o;
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if(o['"'+this.name+'"'] !==undefined) {
if(!o['"'+this.name+'"'].push) {
o['"'+this.name+'"'] = [o[this.name]];
}
o['"'+this.name+'"'].push(this.value || '');
}
else {
o['"'+this.name+'"'] = this.value || '';
}
});
return o;