我有一个非常简单的表单,我想通过使用必需的属性验证:
<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>
但无论我如何填写表单第一个字段始终无效并显示错误消息,我做错了什么?
答案 0 :(得分:1)
为什么不使用标准的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 docs on forms