1

我正在使用 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'
        }
    }
});
4

2 回答 2

1

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

希望这可以帮助!

于 2012-07-17T08:40:01.327 回答
-1

您可以使用表单验证。我认为您需要收听提交事件。

Backbone 可以正常工作。

 events: {      
   'submit': 'submit'
 }
于 2014-01-23T03:01:51.923 回答