Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度6被动形式输入值大写_Javascript_Angular_Angular Reactive Forms - Fatal编程技术网

Javascript 角度6被动形式输入值大写

Javascript 角度6被动形式输入值大写,javascript,angular,angular-reactive-forms,Javascript,Angular,Angular Reactive Forms,我在第六章中使用了反应形式。对于输入类型文本,我希望它是大写的。我试过解决办法 (input)="form.patchValue({name: $event.target.value.toUpperCase()})" 解决方案很好,但唯一的问题是当我将光标移动到中间并键入字符时,光标会在末尾移动 还有其他方法或更好的解决方案吗?为什么不使用CSS来完成这项工作呢 。大写{ 文本转换:大写; } 您可以尝试以下方法: const yourControl = this.form.get('you

我在第六章中使用了反应形式。对于输入类型文本,我希望它是大写的。我试过解决办法

(input)="form.patchValue({name: $event.target.value.toUpperCase()})"
解决方案很好,但唯一的问题是当我将光标移动到中间并键入字符时,光标会在末尾移动


还有其他方法或更好的解决方案吗?

为什么不使用CSS来完成这项工作呢

。大写{
文本转换:大写;
}
您可以尝试以下方法:

const yourControl = this.form.get('yourControlName');
yourControl.valueChanges.subscribe(() => {
  yourControl.patchValue(yourControl.value.toUpperCase(), {emitEvent: false});
});

我知道现在已经很晚了,但是

您可以钩住(更改)事件而不是(输入)事件。在用户离开字段之前,不会执行案例更改,但它会阻止光标跳转


如果用户在字段中按Enter键提交表单,则仍将执行大小写更改。

谢谢,这可以工作,但模型值仍为小写。在这种情况下,您可以使用(更改)事件而不是(输入)样式文本转换:大写,以便在输入视图中直观地看到大写。当输入字段失去焦点时,模型将为大写。我在这里重现了这个问题,这是对UI的一个很好的建议-我已经有了一个(更改)事件,所以这对我在更改事件中toUpperCase()非常有用,并让它处理UI转换。为我工作了!!!!!!!!