gpt4 book ai didi

javascript - Backbone 形态,逃生

转载 作者:行者123 更新时间:2023-11-28 08:59:36 24 4
gpt4 key购买 nike

我在网站的一个页面上开发了一个非常简单的 Backbone 应用程序,但遇到了表单问题。

我有一个列表(项目集合),当我单击项目名称时,它会被表单替换。

当我编辑名称并按 Enter 时,它工作正常,但我找不到解决方案:- 如果我在页面上的其他任何地方按“esc”键或更好的键,则退出表单- 当我按下回车键时保存我的项目,当我没有修改文本时。

现在,当我单击某个项目并加载表单时,如果我想退出 for,我必须更改名称并按 Enter 键。

这是我的编辑表单主干 View :

var EditForm = Backbone.View.extend({
model: Item,
template: _.template('<form>' +
'<input name=name value="<%= name %>" />' +
'</form>'),
events: {
submit: 'save'
},
save: function(e){
e.preventDefault();
var newName = this.$('input[name=name]').val();
this.model.set({name: newName});
this.model.save();
},
render: function(){
this.$el.html(this.template(this.model.attributes));
return this;
}
});

如果有人已经实现了,我将非常感谢有一个例子。

谢谢

最佳答案

您的 View 上需要有一个“keyup”处理程序,并检查其处理程序中的键代码。类似于以下内容:

//modify your events object like this
events:{
submit: "save",
"keyup": "checkAndHandleCancel"
}

//handler
checkAndHandleCancel: function(e){
if (e.keyCode == 27) {
//handle your cancel action here
}
}

请记住,只有当焦点位于表单上时,这才有效。如果您需要处理全局“取消”,则需要在文档上有一个类似的“keyup”处理程序,然后将该事件传播到您的 View 。

关于javascript - Backbone 形态,逃生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17922063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com