Typescript + Html:如何在输入字段中强制大写

时间:2018-05-21 10:14:18

标签: javascript html angular typescript

我正在使用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()">

有没有人找到快速,实用,快速的解决方案?

谢谢你!

6 个答案:

答案 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属性来限制允许的输入。您可能还希望通过对输入进行上限来帮助用户。

&#13;
&#13;
<input type="text" pattern="[A-Z]*" name="example" />
&#13;
&#13;
&#13;

答案 4 :(得分:1)

如果您使用的是ngModel,则可以使用ngModelChange通过JavaScript的.ToUpperCase()来做到这一点。

<input [ngModel]="person.Name" (ngModelChange)="person.Name = $event.toUpperCase()">

答案 5 :(得分:0)

有点晚了,但是我很惊讶没有看到CSS替代方法。

在输入字段中添加:

.input-upper{
    text-transform: uppercase;
}