如何填写骨干表单中的复选框

How to fill in checkbox in Backbone-form

本文关键字:复选框 表单 何填写      更新时间:2023-09-26

im试图用json数组中的其他复选框填充数组复选框。我的代码很简单,

var cmyBox = Backbone.Collection.extend({
    model: mmyBox,
    url: 'http://localhost/wordpress/oferta/prueba1/?json=get_taxonomy&taxonomy=habilidad',
    parse: function (resp) {
        var skillsname = new Array();
        var i = 0;
        resp.terms.forEach(function(item) {
            skillsname[i] = item.slug
            i++
        });
        console.log(skillsname);
        return skillsname;
    }
});
var Form = Backbone.Model.extend({
    schema: {
        id:                     {},
        nombre:                 {},
        apellidos:              {},
        email:                  { type: 'Text', dataType: 'email', validators: ['required', validateEmail] },
        telefono:               { type: 'Text', dataType: 'tel', validators: ['required'] },
        nacionalidad:           { type: 'Select', options: ['Española', 'Extranjera'] },
        link1:                  { type: 'Text', title: 'Enlace a Reel', dataType: 'url' },
        link2:                  { type: 'Text', title: 'Enlace a Web/Blog', dataType: 'url' },
        others:                 { type: 'Text', dataType: 'url' },
        skills1:                { type: 'Checkboxes', options: cmyBoxes },
    }
});
var List = new Form ({
    skills1: true
});

问题是数组是创建的,它有我需要的东西,但不是它应该在的地方。我不知道该把收集的结果分配给那个字段。也许我做错了什么。我想做的是:

skills1:                { type: 'Checkboxes', options: ["artist", "medico", "programador"] },

感谢

我找到了解决方案,适合需要它的人。使用toString函数,它非常有用。。。

  var mmyBox = Backbone.Model.extend({
        toString: function() { return this.get('slug'); }
    });
   var cmyBox = Backbone.Collection.extend({
        model: mmyBox,
        url: 'http://localhost/wordpress/oferta/prueba1/?json=get_taxonomy&taxonomy=habilidad',
        parse: function (resp) {
            return _.map( resp.terms, function( item ){
              return {
                  id: item.id,
                  slug: item.slug
              };
            });
        }
    });