即使表单填写正确,setCustomValidity()也始终显示

setCustomValidity() is always shown even when form is filled correctly

本文关键字:显示 setCustomValidity 表单      更新时间:2023-09-26

我有一个非常简单的形式,我想通过使用所需的属性验证:

          <form name="form">
                <label for="Header">Overskrift</label>
                <input type="text" class="span5" name="Header" ng-model="Message.header" placeholder="Overskrift" oninvalid="this.setCustomValidity('Indtast overskrift')"  required />
                <label for="Body">Tekst</label>
                <textarea name="Body" class="span5" ng-model="Message.body" rows="10" cols="20" placeholder="Besked" oninvalid="this.setCustomValidity('Indtast Tekst')" required />
                <input type="submit" class="btn btn-primary" value="Send" ng-click="send()" />
            </form>

但不管我如何填写表单的第一个字段总是无效的,并显示错误消息,我做错了什么?

为什么不使用标准的AngularJS表单验证控件呢?如:

<input type="text" class="span5" name="Header" ng-model="Message.header" placeholder="Overskrift" required />

可以检查字段的有效性

$scope.form.Header.$dirty && $scope.form.Header.$invalid

其中$dirty表示字段被修改,$invalid表示输入字段不包含有效值。查看AngularJS文档中关于表单的更多信息