javascript "if else" 不满足条件时不会进入else
javascript "if else" wont go in else when condition is not met
我在 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!",但是当您在文本字段中键入内容并将焦点移出它时,它仍然会说,它不会将标签更改为“”。为什么不放在 else 中?
你错过了这里的主播;应该是...
var value = $.trim($("#hsDetailsForm-name").val());
... 这样您就可以查找 id
等于 hsDetailsForm-name
的元素。就目前而言,您寻找 一个元素 hsDetailsForm-name
- 并且有 none。结果,jQuery 元素为空,其 val() 为 undefined
,而 $.trim(undefined)
产生空字符串。
此处的错误是您遗漏了 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;
}
我在 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!",但是当您在文本字段中键入内容并将焦点移出它时,它仍然会说,它不会将标签更改为“”。为什么不放在 else 中?
你错过了这里的主播;应该是...
var value = $.trim($("#hsDetailsForm-name").val());
... 这样您就可以查找 id
等于 hsDetailsForm-name
的元素。就目前而言,您寻找 一个元素 hsDetailsForm-name
- 并且有 none。结果,jQuery 元素为空,其 val() 为 undefined
,而 $.trim(undefined)
产生空字符串。
此处的错误是您遗漏了 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;
}