gpt4 book ai didi

extjs - ExtJS 中的 NumberField 提示

转载 作者:行者123 更新时间:2023-12-05 01:08:13 27 4
gpt4 key购买 nike

我正在尝试显示带有数字字段而不是常规文本字段的 MessageBox.prompt。我无法四处创建新的 MessageBox,所以我决定只使用验证器,但我也遇到了一些麻烦。

所以任何东西都适合我,无论是 MessageBox 的数字验证器还是带有数字字段而不是文本字段的 MessageBox。

这是我的消息框...

var msgbox = Ext.Msg.prompt('Quantity', 'Enter a number',function(btn, text){} )

有什么想法吗?

更新

我设法让验证器工作,但我更希望有一个数字字段而不是文本字段,所以问题的第一部分仍然存在。

如何在 ExtJS 的 MessageBox.prompt 上显示数字字段而不是文本字段。

最佳答案

看起来他的方法没有“hack”是无法完成的。 Ext.Msg 是一个单例,在 initComponent 中设置了文本字段,但它不可配置。 http://docs.sencha.com/ext-js/4-1/source/MessageBox.html#Ext-window-MessageBox-method-initComponent

因为它是一个单例,覆盖将不起作用,这不是解决问题的好方法。

Messagebox 的扩展应该可以工作,但必须查看代码每次 Ext 升级,因为 MessageBox 代码没有很多钩子(Hook)。

Ext.define('NumberPrompt', {
extend: 'Ext.window.MessageBox',
initComponent: function() {
this.callParent();
var index = this.promptContainer.items.indexOf(this.textField);
this.promptContainer.remove(this.textField);
this.textField = this._createNumberField();
this.promptContainer.insert(index, this.textField);
},

_createNumberField: function() {
//copy paste what is being done in the initComonent to create the textfield
return new Ext.form.field.Number({
id: this.id + '-textfield',
anchor: '100%',
enableKeyEvents: true,
listeners: {
keydown: this.onPromptKey,
scope: this
}
});
}
});



var msgbox = new NumberPrompt().prompt('Quantity', 'Enter a number',function(btn, text){} )

关于extjs - ExtJS 中的 NumberField 提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13896474/

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