如何使用backbone和backbone.validation提交表单

时间:2012-07-16 22:29:49

标签: javascript backbone.js validation

我正在使用Backbone版本0.9.2,
jquery版本1.7.2和
Backbone.Validation v0.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'
        }
    }
});

2 个答案:

答案 0 :(得分:1)

在初始化中创建模型后,需要调用Backbone.Validation.bind(this)。

希望这有帮助!

答案 1 :(得分:-1)

您可以使用表单验证。我想你需要听取提交活动。

Backbone可以正常工作。

 events: {      
   'submit': 'submit'
 }