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

我对javascript非常陌生,无法找到解决方案。 我有以下代码

<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;