1

Backboneバージョン0.9.2、
jqueryバージョン1.7.2、
Backbone.Validationv0.5.2を使用しています。

私のhtmlは(1)、backbone.view(2)、backbone.model(3)のように見えます。

私の実装はもうまったく機能していないようです。
送信ボタンをクリックすると、フォームの検証を行わずにPOSTリクエストが実行されます。

この問題を解決する理由と方法はありますか?

私のコードのコメントを見てください。

ありがとう。

(1)

<form method="POST" class="form1">
        <div class="control-group">
            <label for="reason" class="control-label">Reason</label>
            <div class="controls">
                <textarea id="reason" name="reason" required="required" /></textarea>
            </div>
        </div>
        <!-- other codes -->
</form>

(2)

var myView = Backbone.View.extend({

    initialize: function () {
        this.model = new MyModel();

        this.model.bind('validated:invalid', function(model, attrs) {
            console.log('validated:invalid', model, attrs); // It does not work
        });
        this.model.bind('validated:valid', function(model) {
            console.log('validated:valid', model); // It does not work
        });
   },

    events: {
        'click [data-tid="submit"]': 'submitForm'
    },

    submitForm: function (event) {
        event.preventDefault();
        this.model.set(data);
        this.model.save({
            success: function () {
        // some code
            }
        });
    }

(3)

var MyModel = Backbone.Model.extend({

    urlRoot: 'someUrl',

    validation: {
        reason: {
            required: true,
            msg: 'Reason is required'
        }
    }
});
4

2 に答える 2

1

初期化でモデルを作成した後、Backbone.Validation.bind(this) を呼び出す必要があります。

お役に立てれば!

于 2012-07-17T08:40:01.327 に答える