Chrome 设备仿真器中的 Ext js Numberfield 允许类型 "e"(指数)
Ext js Numberfield in Chrome device Emulator allow type "e" (exponential)
我在使用 Ext JS 数字字段时遇到问题。
当我在 google chrome 模拟器中使用设备时,允许在数字字段组件中键入字母“e”。
重现该行为的步骤:
- 在此fiddle中输入:https://fiddle.sencha.com/#view/editor&fiddle/36eh
- 按 F12 打开检查模式。
- 单击“设备”图标以更改为设备模式。
- 再次单击 运行 fiddle。
- 在数字字段组件中键入字母“e”。
- 验证是否可以在设备模式下通知字母“e”。
你们见过这个问题吗?
谢谢,
雷纳托·卡瓦略。
您可以使用以下肮脏的技巧:
Ext.create('Ext.form.Panel', {
renderTo: document.body,
items: [{
xtype: 'numberfield',
label: 'Decimal number',
decimals: 2,
decimalSeparator: ',',
labelAlign: 'top',
name: 'age',
//inputType: 'number', // Instead of "click on the Device icon"
// Our dirty hack/workaround
listeners: {
keydown: function(cmp, e) {
if(e.key() === 'e') {
e.stopEvent()
}
}
}
}]
});
或者您可以使用 inputType: 'text' 并过滤输入,但这是更肮脏的方式..无论如何,如果您找不到更优雅的东西,您可以使用这个肮脏的 hack。
另一个解决方案:
<input type="number" onkeydown="javascript: return event.keyCode === 8 || event.keyCode === 46 ? true : !isNaN(Number(event.key))">
我在使用 Ext JS 数字字段时遇到问题。 当我在 google chrome 模拟器中使用设备时,允许在数字字段组件中键入字母“e”。
重现该行为的步骤:
- 在此fiddle中输入:https://fiddle.sencha.com/#view/editor&fiddle/36eh
- 按 F12 打开检查模式。
- 单击“设备”图标以更改为设备模式。
- 再次单击 运行 fiddle。
- 在数字字段组件中键入字母“e”。
- 验证是否可以在设备模式下通知字母“e”。
你们见过这个问题吗?
谢谢, 雷纳托·卡瓦略。
您可以使用以下肮脏的技巧:
Ext.create('Ext.form.Panel', {
renderTo: document.body,
items: [{
xtype: 'numberfield',
label: 'Decimal number',
decimals: 2,
decimalSeparator: ',',
labelAlign: 'top',
name: 'age',
//inputType: 'number', // Instead of "click on the Device icon"
// Our dirty hack/workaround
listeners: {
keydown: function(cmp, e) {
if(e.key() === 'e') {
e.stopEvent()
}
}
}
}]
});
或者您可以使用 inputType: 'text' 并过滤输入,但这是更肮脏的方式..无论如何,如果您找不到更优雅的东西,您可以使用这个肮脏的 hack。
另一个解决方案:
<input type="number" onkeydown="javascript: return event.keyCode === 8 || event.keyCode === 46 ? true : !isNaN(Number(event.key))">