Это код из магистральных форм. сейчас я хотел бы сделать кнопку отправки для проверки моего текстового поля и прочего, что задокументировано, за исключением того, как получить эту кнопку отправки в DOM. не стесняйтесь понизить голос, в любом случае в моем мнении это трудно понять для нубов

(function($) {
    var cities = {
        'UK': ['London', 'Manchester', 'Brighton', 'Bristol'],
        'USA': ['Washington DC', 'Los Angeles', 'Austin', 'New York']
    };

    //The form
    var form1 = new Backbone.Form({
        schema: {
            country: { type: 'Select', options: ['UK', 'USA'] },
            city: { type: 'Select', options: cities.UK },
            message: { type: 'Text'}
        }
    }).render();

    form1.on('country:change', function(form1, countryEditor) {
        var country = countryEditor.getValue(),
            newOptions = cities[country];
            form1.fields.city.editor.setOptions(newOptions);

    });

    //Add it to the page
    $('body').append(form1.el);
})(jQuery);
4
thegrunt 29 Янв 2013 в 22:04

2 ответа

Лучший ответ

Тебе нужно взять шаблон BBF, мой друг!

Хотя добавление - это один из способов сделать это, вы должны придерживаться BBF-способа реализации кнопок. Вы можете создавать различные шаблоны или повторно использовать их при необходимости, и отсюда вы можете добавлять атрибуты в вашу форму и т. Д. Надеюсь это поможет...

Проверьте рабочую демонстрацию: http://jsfiddle.net/c5QHr/116/

$(function() {

//// Set the template -----------------------------> 
Backbone.Form.setTemplates({
    customTemplate: '<form id="your-form-id">{{fieldsets}}<input id="your-form-cancel" type="reset" value="cancel" name="reset" /><input type="submit" value="submit" name="submit" />'

});

var cities = {
    'UK': ['London', 'Manchester', 'Brighton', 'Bristol'],
    'USA': ['Washington DC', 'Los Angeles', 'Austin', 'New York']
};

//The form
var form = new Backbone.Form({
    //// Use the template ----------------------------->
    template: 'customTemplate',
    schema: {
        country: { type: 'Select', options: ['UK', 'USA'] },
        city: { type: 'Select', options: cities.UK }
    }
}).render();

form.on('country:change', function(form, countryEditor) {
    var country = countryEditor.getValue(),
        newOptions = cities[country];

    form.fields.city.editor.setOptions(newOptions);
});

//Add it to the page
$('body').append(form.el);

////Do something with the buttons ----------------------------->

$("#your-form-id").submit(function(){alert('BBF Form was submitted!'); return false;});
$("#your-form-cancel").on('click',function(){alert('BBF Form was cancelled!'); });

});

5
Steve Chan 31 Мар 2013 в 17:41

Можно добавить кнопку отправки в форму с помощью jQuery, вот так

$('yourBackboneform').append("<input type='submit' value='submit' name='submit' /><input type='reset' value='reset' name='reset' />");

Основное назначение магистральных форм - автоматическое обновление с помощью ajax для мобильных устройств, поэтому они решили не отображать отправленные формы по умолчанию.

1
thegrunt 29 Янв 2013 в 21:00