Vaadin 8使用TextField Formatter强制大写后无法输入空格如何解决
Vaadin 8 TextField Formatter 强制大写兼容空格输入方案
问题原因
CustomStringBlockFormatter 默认的合法字符过滤规则仅包含字母、数字,未将空格纳入允许输入的字符范围,因此配置强制大写规则后会默认拦截空格输入。
解决方法
通过 Options 的 setAllowedCharacters 方法显式将空格加入允许输入的字符列表即可,无需修改原有强制大写配置,修改后的代码如下:
Options options = new Options(); options.setBlocks(dataLen); // 显式声明允许输入的字符,包含字母、数字、空格,如需其他特殊字符可直接追加到字符串末尾 options.setAllowedCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "); if (format[1].equalsIgnoreCase("UPPER")) options.setForceCase(ForceCase.UPPER); new CustomStringBlockFormatter(options).extend(field);
补充说明
ForceCase.UPPER 规则会自动将输入的小写字符转换为大写,因此无需在允许字符列表中删除小写字母,不会影响最终输出的大写规则。
内容的提问来源于stack exchange,提问作者Chris Suen
相关产品推荐
相关产品推荐

