我在html中有输入文本和空标签
<div class="form-group">
<label for="hsDetailsForm-name">Denumire</label>
<input id="hsDetailsForm-name" type="text" class="form-control" ng-model="hydroStation.name" placeholder="Obligatoriu" required ng-blur="validationObliga()" autofocus/>
<label id="obliga"></label>
</div>
这是js中的函数
$scope.validationObliga = function () {
var value = $.trim($("hsDetailsForm-name").val());
if (value == "") {
$('#obliga').html("Campul este obligatoriuu!").css("color", "red");
} else {
$('#obliga').html("");
}
}
ng-blur
可以工作,当空的时候会写“Campul este obligatoriuu!”红色,但是当您在文本字段中键入内容并将焦点从中调出时,它仍然会说,它不会将标签更改为“”。为什么不进去呢?
答案 0 :(得分:2)
此处的错误是您错过了{id>选择器的#
。
虽然在选择器中添加#
可以解决您的问题,但我不建议您在这里使用jQuery,使用AngularJS如下
控制器:
$scope.validationObliga = function () {
var value = $scope.hydroStation.name.trim();
$scope.showMessage = value === "";
};
查看:
<div class="form-group">
<label for="hsDetailsForm-name">Denumire</label>
<input type="text" class="form-control" ng-model="hydroStation.name" placeholder="Obligatoriu" required ng-blur="validationObliga()" autofocus/>
<label ng-show="showMessage" class="error">Campul este obligatoriuu!</label>
<!-- ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ Add this --->
</div>
CSS:
.error {
color: red;
}
答案 1 :(得分:1)
你错过了这里的主播;应该是......
var value = $.trim($("#hsDetailsForm-name").val());
...以便您查找id
等于hsDetailsForm-name
的元素。按照目前的情况,你会找到一个元素 hsDetailsForm-name
- 而且没有。因此,jQuery元素为空,其val()为undefined
,$.trim(undefined)
为空字符串。