我正在构建一个Web应用程序,我希望我的文本字段是标题大写的。我做了研究,发现你可以在文本字段的onKeyUp
控制器上执行以下代码:
onTextfieldKeyup1: function(textfield, e, eOpts) {
var str = textfield.getValue();
var newIn = str.replace(/\w\S*/g, function(txt){
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
textfield.setValue(newIn);
}
这样就可以了,第一个字母会正确地大写。
但是,我还希望在选择/按Tab键进入字段时能够选择/突出显示所有内容。我知道可以通过执行以下操作来实现这一点:selectOnFocus: true
.
RegEx解决方案的问题是它会过滤 * 每一次击键 *,所以当我用Tab键进入文本视图时,它不会选择所有内容,而是运行RegEx,我的文本插入点在末尾。此外,它不允许输入LeBron
或MacArthur
,因为它只将第一个字母大写,其他所有内容均为小写。
我使用的是ExtJS 4。
2条答案
按热度按时间exdqitrt1#
如果键不是Tab键,则可以签入事件
lyr7nygr2#
您应该侦听一个不同事件,如
change
或blur
。您也可以使用
Ext.String.capitalize
来代替regexp。(http)的名称。