Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发布到服务器的Javascript控件表单字段_Javascript_Jquery_Json_Backbone.js - Fatal编程技术网

发布到服务器的Javascript控件表单字段

发布到服务器的Javascript控件表单字段,javascript,jquery,json,backbone.js,Javascript,Jquery,Json,Backbone.js,我有一个Backone JS模型,定义如下 var Class = BaseModel.extend({ idAttribute: "classId", urlRoot: "api/class", defaults: { "person": null, "classUrl": null, "classId": null } } var m

我有一个Backone JS模型,定义如下

var Class = BaseModel.extend({
        idAttribute: "classId",
        urlRoot: "api/class",
        defaults: {
            "person": null,
            "classUrl": null,
            "classId": null
        }
}       
    var myJSON = {
        person : new Person(
            {
            "personId": $('#personName option:selected').data('personid'),
            "personName": this.$('#personName').val()
            }
        ),  
        classUrl: this.$('#classUrl').val()
}
在这里,person本身实际上是一个具有2个属性的对象/类;人名

我有一个UI表单,它有两个字段

  • 下拉列表(称为personName):用户可以从选项列表中进行选择
  • 文本框(称为classUrl)
  • 在我的JS代码中,我将JSON设置如下

    var Class = BaseModel.extend({
            idAttribute: "classId",
            urlRoot: "api/class",
            defaults: {
                "person": null,
                "classUrl": null,
                "classId": null
            }
    }       
    
        var myJSON = {
            person : new Person(
                {
                "personId": $('#personName option:selected').data('personid'),
                "personName": this.$('#personName').val()
                }
            ),  
            classUrl: this.$('#classUrl').val()
    }
    
    那么我会的

    this.model.save(myJSON, {
    url:
    success:
    }
    
    然而,发布的JSON看起来像

    {
    person:,
    classUrl:
    personName:
    }
    
    我不想额外的人名(对应于下拉列表)被张贴

    只是补充一下,我还有一个changeAction,它调用任何表单字段的change来进行验证。但在这里我有

    changeAction: function (event) {
        var self = this;
        var target = event.target;
        var change = {};
    
        target.value = $.trim(target.value);
        change[target.name] = target.value;
    
        var tpmModel = this.model;
        tpmModel.set(change);
    
        var check = tpmModel.validateItem(target.id);
        if (check.isValid === false) {
        self.addValidationError(target.id, check.message);
        } else {
        self.removeValidationError(target.id);
        }
    }
    

    如何处理此问题?

    当需要使用主干模型指定要发布的内容时,需要在save方法中使用“data”。它告诉主干网使用{}内的指定数据向服务器发布某些内容。 像这样

      this.model.save(data: {"parameter1":"parameter1"
      ,"parameter2":"parameter2" })
    


    这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。当然,你是对的,我的错。我会改进我的答案\0/