javascript“if else”在条件不满足时不会进入其他地方

时间:2015-09-25 12:54:17

标签: javascript jquery html angularjs focus

我在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!”红色,但是当您在文本字段中键入内容并将焦点从中调出时,它仍然会说,它不会将标签更改为“”。为什么不进去呢?

2 个答案:

答案 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)为空字符串。