angularjs 正在从输入字段中删除无效标记

dluptydi  于 2022-10-31  发布在  Angular
关注(0)|答案(1)|浏览(148)

因此,我有一个输入字段,如果输入的文本长度不正好是七位数,它会发出一个标志。如果您试图用较短的字符串保存数据,我使用oninvalid给予它一个自定义的错误消息。问题是,一旦触发,它将保留红色边框和错误消息。即使输入了有效的字符串并再次按下了保存按钮。没有自定义错误信息的字段也可以正常工作。有没有可能导致这种情况的想法,还是一种强制它清除无效标志的方法?
值得注意的是,我实际上并没有使用submit调用,而是使用angularJS调用。

<form name="myForm" class="myForm" required>
    <input name="barcode_num" size="7" type="text" class="form-control" maxlength="7" ng-required="ctrl.barcodeRequired" ng-model="ctrl.barcode" pattern=".{0}|.{7}" oninvalid="this.setCustomValidity('Barcode must be exactly 7 characters')" />
    ....
    <button ng-click="ctrl.submitButton()" type="submit">SAVE</button>
    </form>
mwg9r5ms

mwg9r5ms1#

我建议检查docs.angularjs.org/api/ng/type/form.FormControllerdocs.angularjs.org/guide/forms。这些详细说明了如何使用内置的Angular 形式控制器来隐藏和显示错误和类。
实际上,您可以使用span来表示错误,并使用内置的$error属性来显示消息,如下所示:

<span ng-show="myForm.barcode_num.$invalid">Barcode must be exactly 7 characters</span>

在你的输入中,你可以使用ng-class让angular更新你的类。你可以为红色边框添加类,如下所示:

<input ... ng-class="{ 'red-border-class': myForm.barcode_num.$invalid }" />

如果您通读这些文档,您会发现其中有许多不同的验证属性。您可以验证整个表单或每个命名输入。您还可以使用多个范围来显示不同的错误消息。

相关问题