我正在使用angular(typescript),我在html中有一个模型形式,用户必须插入代码字段和描述字段。
代码字段必须始终由用户输入,始终为大写。
我找到并关注了这个问题: How to convert input value to uppercase in angular 2 (value passing to ngControl)
但是用户插入的最后一个字母仍然是小写的.. 基本的是数据库总是全部大写(我也设置了4个字符的限制,正常工作) 这是我的代码,但如上所述,它无法正常工作:
<input type="text" id="code" #code class="form-control" formControlName="code" maxlength="4"
(input)="code.value=$event.target.value.toUpperCase()">
有没有人找到快速,实用,快速的解决方案?
谢谢你!答案 0 :(得分:22)
您只需在oninput="this.value = this.value.toUpperCase()"
标记中添加<input>
即可立即将输入字段中的任何输入转换为大写字母。
答案 1 :(得分:4)
基于@Ali Heikal的答案应该是:
<input #code formControlName="code" (input)="code.value = code.value.toUpperCase()" type="text">
或在必要时使用.toLocaleUpperCase()
。
答案 2 :(得分:2)
这对我有用。我只是使用了keyup,每当用户添加一个字符时,它都会自动将其转换为大写字母,不仅在UI中,而且还在模型中。
Dim msg As String
'k starts as the column of the specified date
'rRng includes each of the cases between k to rRng.Columns.Count
For k = iTargetCol To rRng.Columns.Count
msg = rRng(1, k).Value2
Select Case True
' This is to see if a number
Case IsNumeric(rRng(i, k).Value2)
msg = msg & " Working"
' This is to account if it's "Sick/2" or "Vacation/2" etc
Case rRng(i, k).Value2 Like "*/2"
msg = msg & " Half-day"
Case rRng(i, k).Value2 = "Vacation"
msg = msg & " On vacation"
Case Else:
msg = vbNullString
End Select
If Not msg = vbNullString Then MsgBox prompt:=msg
Next k
答案 3 :(得分:1)
您可以使用pattern
属性来限制允许的输入。您可能还希望通过对输入进行上限来帮助用户。
<input type="text" pattern="[A-Z]*" name="example" />
&#13;
答案 4 :(得分:1)
如果您使用的是ngModel
,则可以使用ngModelChange
通过JavaScript的.ToUpperCase()来做到这一点。
<input [ngModel]="person.Name" (ngModelChange)="person.Name = $event.toUpperCase()">
答案 5 :(得分:0)
有点晚了,但是我很惊讶没有看到CSS替代方法。
在输入字段中添加:
.input-upper{
text-transform: uppercase;
}