当输入有效时,我很难显示消息。要显示错误消息,它正常工作。这就是我正在尝试的:
<form>
...
<div class="form-group">
<label class="col-xs-2 control-label" for="inputSuccess">Username</label>
<div class="col-xs-10">
<input type="text" id="inputUser" name="usernameInput" class="form-control textbox"
placeholder="Digite seu Username" width="25" ng-model="username.value"
ng-minlength="4" ng-maxlength="10" valid="validateForm.usernameInput.$valid" required>
<div ng-if="validateForm.usernameInput.$dirty" ng-messages="validateForm.usernameInput.$error">
<div class="error-message" ng-message="required">*This field is required</div>
<div class="error-message" ng-message="minlength">*Username too short</div>
<div class="error-message" ng-message="maxlength">*Username too long</div>
</div>
<div ng-if="validateForm.usernameInput.$dirty" ng-messages="validateForm.usernameInput.$valid">
<div class="valid-message" ng-message="valid">valid!</div>
</div>
</div>
</div>
</form
我还尝试设置&#34; ng-message&#34;使用$ valid ng-model但无济于事。有什么提示吗?
答案 0 :(得分:0)
添加&#34;必需&#34;属性为输入标记
否则为了避免通过检查工具进行操作,PHP可以工作,
如果(空($ _ POST [&#39; usernameInput&#39;])) { echo&#34;错误!&#34; }
答案 1 :(得分:0)
您可以使用ng-if
与validateForm.usernameInput.$valid
一起控制显示valid messages
。请注意,此块应放在ng-message
块之外。
<div ng-if="validateForm.usernameInput.$valid">
valid!
</div>
<强> PLUNKER DEMO 强>
评论:您在validateForm
标记上错过了form
,我认为这是错字。
答案 2 :(得分:0)
ng-messages
的值应该是包含要验证的属性/属性的对象。例如input.$error
可以包含required
,minlength
或maxlength
。它与$valid
不同,因为它具有true / false值,因此我们检查$valid
/ usernameInput
false
>
ng-message
的值应该是要检查包含块ng-messages
值对象的属性的名称。如果财产的价值是真实的,你会看到内容,如果是虚假的话你也不会。ng-messages
/ ng-message
可能不适合您的案例,因为您正在检查一个值并显示一条消息。TLDR
ng-messages
:对象名称* ng-message
:对象*的属性名称ng-message
的内容显示......假,没有任何显示。
angular.module('formDemo', ['ngMessages']);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.20/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.20/angular-messages.js"></script>
<body ng-app="formDemo">
<form name="validateForm">
...
<div class="form-group">
<label class="col-xs-2 control-label" for="inputSuccess">Username</label>
<div class="col-xs-10">
<input
type="text"
id="inputUser"
name="usernameInput"
class="form-control textbox"
placeholder="Digite seu Username"
width="25"
ng-model="username.value"
ng-minlength="4"
ng-maxlength="10"
required>
<div ng-if="validateForm.usernameInput.$dirty" ng-messages="validateForm.usernameInput.$error">
<div class="error-message" ng-message="required">*This field is required</div>
<div class="error-message" ng-message="minlength">*Username too short</div>
<div class="error-message" ng-message="maxlength">*Username too long</div>
</div>
<div ng-if="validateForm.usernameInput.$dirty" ng-messages="validateForm.usernameInput">
<div class="valid-message" ng-message="$valid">valid!</div>
</div>
</div>
</div>
</form>
</body>
&#13;