我有一個需要輸入最少字符的輸入。當用戶開始輸入內容,然後切換到另一個字段而沒有達到所需的最小字符數時,我想更改文本類以將其變爲紅色。檢查輸入是否有焦點
我已經使用這個代碼,以檢測當焦點改變嘗試,但它不工作:
$scope.$watch(function(){
return $('#job_desc').is(':active');
}, function(){
console.log('test');
})
是什麼問題?
非常感謝
我有一個需要輸入最少字符的輸入。當用戶開始輸入內容,然後切換到另一個字段而沒有達到所需的最小字符數時,我想更改文本類以將其變爲紅色。檢查輸入是否有焦點
我已經使用這個代碼,以檢測當焦點改變嘗試,但它不工作:
$scope.$watch(function(){
return $('#job_desc').is(':active');
}, function(){
console.log('test');
})
是什麼問題?
非常感謝
如果您正在使用angularjs 1.2你有兩個指令,以幫助您看,如果一個字段具有焦點:NG-重點和NG-模糊。如果沒有,實現你自己的指令很簡單。代碼(plunker):
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="jquery" data-semver="2.0.3" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script data-require="[email protected]" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js" data-semver="1.2.16"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<form>
<input ng-model="name" id="name" ng-focus="focused()" ng-blur="blurred()">
<input ng-model="name2">
</form>
</body>
</html>
和JavaScript
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.focused = function() {
console.log("got focus");
}
$scope.blurred = function() {
console.log("lost focus");
}
});
如果在另一方面,你只是想驗證,看看在angularjs表單驗證,像myForm.myInput $有效。 Angularjs相應地設置了ng有效和ng無效的類。
你也可以用特定的選擇器來聽,就像這樣。
function listenForFocus() {
var el = angular.element(document.querySelectorAll('input, select'));
for (var i = 0; i < el.length; i++) {
var element = angular.element(el[i]);
element.bind('blur', function (e) {
console.log('blur');
});
element.bind('focus', function (e) {
console.log('focus');
});
}
}
您是否額外添加jQuery到您的角度項目或依賴angular的jquery-lite(默認情況下)? – zwacky
我也有jquery – Spearfisher
爲什麼你不綁定所需的表單元素的模糊事件? '('。blur'')。bind('blur',function(evt){...});'如果你需要重新計算它,你可以在blur事件回調中做一個範圍$ apply() 。 – zwacky