提交表单标签我想显示自定义错误消息
我的表格是
<form class="form-horizontal" role="form" id="new-session-form" name="saveSessionForm" ng-model="saveSessionForm" ng-submit="saveSession()" novalidate>
<textarea class="form-control" name="sessionTopic" ng-model="session.topic" required></textarea>
<div ng-show="submitted && saveSessionForm.sessionTopic.$error.required" class="error">Session Name cannot be blank.</div>
<button type="submit" class="btn btn-sm ng-click="submitted=true">Save</button>
当我从表单标签中删除novalidate时能够看到自定义验证错误消息...
但是如果在表单标签中写入novalidate然后单击按钮我将无法看到自定义验证错误消息..
我做错了什么......请帮忙......
答案 0 :(得分:2)
根据您更新的要求进行编辑:
对HTML中的元素进行单独验证:
<textarea class="form-control" name="sessionTopic" ng-model="session.topic" required></textarea>
<div ng-show="saveSessionForm.sessionTopic.$error.required" class="error">Session topic cannot be blank.</div>
在控制器中,使用$valid
验证整个表单:
$scope.saveSession = function(){
if($scope.saveSessionForm.$valid){
alert("Saving");
}
}
<强> DEMO 强>
实现这一目标的两种方法:
首先,如果您想在提交时进行验证:
<div ng-show="errorExists" class="error">Session Name cannot be blank.</div>
$scope.saveSession = function(){
if ($scope.saveSessionForm.$valid) {
$scope.errorExists = false;
alert("Saving");
} else {
$scope.errorExists = true;
}
}
其次,在输入和删除时:
<div ng-show="saveSessionForm.$valid" class="error">Session Name cannot be blank.</div>
<强> DEMO 强>
/////////////////////////////////////////////// //////////////////////////////////////////////
novalidate
基本上意味着表单不会在提交时验证:
http://www.w3schools.com/tags/att_form_novalidate.asp
因此,您在技术上告诉它验证[使用required
],然后使用novalidate
取消。这就是为什么除非你删除novalidate
,否则它将无效。
换句话说,novalidate
会覆盖required
。如果您想要提出自己的JavaScript验证规则,可能需要使用它。