4

これは backbone-forms のコードです。今のところ、送信ボタンをレンダリングして、テキストフィールドなどを検証したいと思います。これは文書化されていますが、その送信ボタンを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

2 に答える 2

5

私の友人、BBF テンプレートに取り掛かる必要があります。

それを追加することはそれを行う 1 つの方法ですが、実際にはボタンを実装する 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!'); });

});

于 2013-03-31T17:41:58.290 に答える
1

このようにjQueryを使用して送信ボタンをフォームに追加することができます

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

バックボーン フォームの主な目的は、モバイル向けの ajax 駆動の自動更新クレイジーなものであるため、デフォルトでは送信フォームのものをレンダリングしないことにしたと思います。

于 2013-01-29T21:00:59.053 に答える