Javascript Chrome设备仿真器中的Ext js Numberfield允许类型;";(指数)
我对Ext JS number字段有问题。 在google chrome emulator中使用设备时,允许在数字字段组件中键入字母“e” 复制行为的步骤:Javascript Chrome设备仿真器中的Ext js Numberfield允许类型;";(指数),javascript,extjs,Javascript,Extjs,我对Ext JS number字段有问题。 在google chrome emulator中使用设备时,允许在数字字段组件中键入字母“e” 复制行为的步骤: 在这把小提琴中输入: 按F12打开检查模式 单击设备图标以更改为设备模式 单击以再次运行小提琴 在数字字段组件中键入字母“e” 验证是否可以在设备模式下通知字母“e” 你们见过这个问题吗 谢谢, Renato Carvalho。您可以使用以下肮脏的黑客: Ext.create('Ext.form.Panel', { renderTo
Renato Carvalho。您可以使用以下肮脏的黑客:
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”并过滤输入,但这是一种更脏的方式。。无论如何,如果你找不到更优雅的东西,你可以使用这个肮脏的黑客
另一个解决方案:
<input type="number" onkeydown="javascript: return event.keyCode === 8 || event.keyCode === 46 ? true : !isNaN(Number(event.key))">
这是指数表示法,例如1.2E10谢谢Arthur!有什么办法可以防止吗?这只是在设备模式下发生的。我在sencha文档中发现了这个属性“allowExponential”,但它只适用于经典工具包,我们使用的是现代工具包。谢谢您的时间!我会尝试这种方法!谢谢,亚瑟,这对我们有用。给我发一个捐款链接,我想为你帮助我们的所有时间付你一杯啤酒!Hehehei使用BrowserStack应用程序和快捷键键盘进行了测试,对于这个特定场景,我们仍然存在问题。似乎无法识别键值。可能我需要使用另一种解决方案。如果我发现了我在这里发布的东西。谢谢你看看第二个解决方案。亚瑟,它现在起作用了。我使用了混合解决方案。基本上,对于普通键盘,我使用onKeyDown事件保留了第一个解决方案。仅针对快捷键键盘场景,我使用了以下函数:oninput=“this.value=this.value.replace(/[^0-9]/g');“
。