extjs 使用onKeyUp和RegEx在文本字段中使用“标题大小写”

cu6pst1q  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(186)

我正在构建一个Web应用程序,我希望我的文本字段是标题大写的。我做了研究,发现你可以在文本字段的onKeyUp控制器上执行以下代码:

  1. onTextfieldKeyup1: function(textfield, e, eOpts) {
  2. var str = textfield.getValue();
  3. var newIn = str.replace(/\w\S*/g, function(txt){
  4. return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  5. });
  6. textfield.setValue(newIn);
  7. }

这样就可以了,第一个字母会正确地大写。
但是,我还希望在选择/按Tab键进入字段时能够选择/突出显示所有内容。我知道可以通过执行以下操作来实现这一点:selectOnFocus: true .
RegEx解决方案的问题是它会过滤 * 每一次击键 *,所以当我用Tab键进入文本视图时,它不会选择所有内容,而是运行RegEx,我的文本插入点在末尾。此外,它不允许输入LeBronMacArthur,因为它只将第一个字母大写,其他所有内容均为小写。
我使用的是ExtJS 4。

exdqitrt

exdqitrt1#

如果键不是Tab键,则可以签入事件

  1. if (e.keyCode != 9) {
  2. var str = textfield.getValue();
  3. var newIn = str.replace(/\w\S*/g, function(txt){
  4. return txt.charAt(0).toUpperCase() + txt.substr(1);
  5. });
  6. textfield.setValue(newIn);
  7. }
lyr7nygr

lyr7nygr2#

您应该侦听一个不同事件,如changeblur
您也可以使用Ext.String.capitalize来代替regexp。
(http)的名称。

相关问题