【发布时间】:2011-06-27 11:23:28
【问题描述】:
我正在查看 ExtJS 的密码强度实现,并遇到了这个特定的实现,
A password strength meter for passwords for ExtJS4.
这是使用 ExtJS 4 实现的,我希望将它与 ExtJS 3 一起使用。 我尝试了几个选项,但想不通。
如果我需要做一些特定的事情才能让它与 ExtJS 3 一起工作,请告诉我。
如果有帮助的话,这里是这个插件的Github link。
【问题讨论】:
我正在查看 ExtJS 的密码强度实现,并遇到了这个特定的实现,
A password strength meter for passwords for ExtJS4.
这是使用 ExtJS 4 实现的,我希望将它与 ExtJS 3 一起使用。 我尝试了几个选项,但想不通。
如果我需要做一些特定的事情才能让它与 ExtJS 3 一起工作,请告诉我。
如果有帮助的话,这里是这个插件的Github link。
【问题讨论】:
在我的几个项目中,我使用了这个小部件: Ext.ux.PasswordMeter
效果很好,所以我认为您也可以查看它。
【讨论】:
看起来很简单。您所要做的就是使用相同的逻辑扩展Ext.form.TextField 类。他们正在使用onFieldChange 事件处理实际的“强度”,从我在文档中看到的内容来看,这在 Ext 3 中不存在,但您可以轻松地使用keyup : ( Ext.form.TextField this, Ext.EventObject e ) 事件来做同样的事情。
查看源代码,发现它们定义了 2 个函数,processValue 和 scorePassword。您可以直接复制这些函数,然后实现 keyup 函数来使用它们。
您将创建类:
Ext.form.PasswordStrength = Ext.extend(Ext.form.TextField, {
initComponent: function () {
// write your code, functions, etc here
// default values you want for your TextField
var config = {
}
Ext.apply(this, config);
Ext.form.PasswordStrength.superclass.initComponent(this);
}
});
// register an xtype
Ext.reg("passwordstrength", Ext.form.PasswordStrength);
这应该足以让你开始。
【讨论】:
我将 Ext.ux.PasswordMeter 修改为与 Ext JS 4 兼容。这是代码:my blog
请随时给我反馈。
【讨论】: