2015-09-25 58 views
1

我有一個輸入文本和HTML的javascript「如果別人」不會去在別的時候條件不滿足

<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

你在這裏沒有使用AngularJS,你只是使用jQuery。這是大多數開發人員不建議在AngularJS應用中包含jQuery的主要原因。 – Tushar

回答

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; 
} 
+0

非常感謝! –

+0

@BudaCristian不客氣!快樂編碼:) – Tushar

+0

如何將您的評論標記爲有用? –

1

你錯過了這裏的錨;應該是...

var value = $.trim($("#hsDetailsForm-name").val()); 

...讓您尋找與id等於hsDetailsForm-name的元素。現在,你在尋找元素hsDetailsForm-name - 而且沒有。因此,jQuery元素爲空,其val()爲undefined,而$.trim(undefined)產生空字符串。

相關問題