gpt4 book ai didi

javascript - Backbone JS : Trigger form validation on form submit from view

转载 作者:行者123 更新时间:2023-11-28 21:10:58 25 4
gpt4 key购买 nike

因此,我开始使用 Backbone.js 来构建我的 javascript 代码并拥有模块化应用程序,但我遇到了有关事件的问题。

我想制作一个简单的 View 来处理表单并验证它们。将来我想添加所有 JavaScript 功能,例如实时验证、悬停效果等。

这是我现在拥有的简化代码:

var Form = Backbone.View.extend({
attributes: {
att1 = 'att1',
att2 = 'att2'
},
events: {
'submit': 'validateFields'
},
initialize: function(element) {
this.el = $(element);
},
validateFields: function() {
alert(this.attributes.att1); //do something
return false;
}
});

var f = new Form('#formid');

我遇到的问题是,当我提交表单时,不会调用 validateFields 函数。我还尝试在构造函数上使用它:

this.el.bind('submit', this.validateFields);

现在,最后的代码可以工作,但验证函数中的“this”将是 $('#formid') 对象,而不是我的 Form 对象。

最佳答案

Backbone 使用 jQuery 的 delegate 方法将事件绑定(bind)到 events 哈希中的回调。

不幸的是,delegate 方法不适用于 IE 中的提交事件 See comment in Backbone source

一个简单的修复方法是将这行代码添加到您的 render 方法中。

render: function() {
//render the view
$(this.el).submit(this.validateFields);
}

您还需要在初始化方法中绑定(bind) validateFields 的上下文

initialize: function() {
_.bindAll(this, 'render', 'validateFields');
}

关于javascript - Backbone JS : Trigger form validation on form submit from view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8679629/

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