0

我正在使用 Backbone 和 Backbone.ModelBinder。

我有一堆通过 BackboneModelBinder 绑定的文本字段。一切都按预期工作,但是当我对文本字段进行更改并且在点击“保存”按钮之前没有先取消关注该字段(单击输入字段)时,我必须点击“保存”按钮两次 - 一次取消关注字段,然后第二次实际触发保存按钮处理程序(应该第一次触发)

(保存是一个标准的 html 按钮,其中绑定了主干事件)。

有谁知道为什么会这样?

我希望这是有道理的:|

感谢您的任何帮助或指导

-柯克

4

1 回答 1

1

这是因为 ModelBinder 默认情况下将新值设置为模型在“模糊”或“更改”事件上的属性(这取决于输入的类型)。您可以通过更改源代码来修改此行为,在这两种方法中添加 keyup 作为绑定事件:

    _bindViewToModel:function () {
        $(this._rootEl).delegate('', 'change keyup', this._onElChanged);
        // The change event doesn't work properly for contenteditable elements - but blur does
        $(this._rootEl).delegate('[contenteditable]', 'blur keyup', this._onElChanged);
    },

    _unbindViewToModel: function(){
        if(this._rootEl){
            $(this._rootEl).undelegate('', 'change keyup', this._onElChanged);
            $(this._rootEl).undelegate('[contenteditable]', 'blur keyup', this._onElChanged);
        }
    },
于 2012-08-24T17:27:02.867 回答