2016-03-11 183 views
2

這是一個textarea元素觸發按鈕

<textarea id="textfield" paceholder="type anything here"></textarea> 

這是一個按鈕

<button type="button" class="btn btn-danger" id="button">Alert</button> 

我可以觸發上面的按鈕來提醒textarea的值使用jquery

<script> 
$(function() { 
    $('#button').click(function() { 
    var value = $('#textfield').val(); 
     alert(value); 
    }); 
}); 
</script> 

有沒有一種方法可以使用角度觸發按鈕警報默認情況下,每當一個文本或價值進入textarea的 我想用這樣的

$scope.$watch('textfield', function() { 
//pop alert if textarea has a value 

但沿線莫名其妙丟失。

+0

的可能的複製[如何獲得與NG-變化的字段的值(http://stackoverflow.com/questions/30947808/how-to-get-the-value-of-一個字段與ng-change) – fodma1

回答

2

您可以使用內置的ngKeyup指令角

<div ng-app="myapp" ng-controller="myctrl"> 
    <textarea ng-keyup="show($event)" name="" id="" cols="30" rows="10"></textarea> 
</div> 

你的JS

angular.module("myapp",[]) 
.controller("myctrl", function($scope){ 
    $scope.show = function($event){ 
    alert($event.target.value); 
    } 
}) 

如果您需要強制點擊一個按鈕每次文字輸入改變你show功能如下

angular.module("myapp",[]) 
.controller("myctrl", function($scope){ 
    $scope.show = function($event){ 
    alert($event.target.value); 
    document.querySelector(".btn").click(); 
    } 
}) 

注: ngKeyup激發每一個鍵被釋放的時候,如果你要聽在textaread輸入的每個字符使用ngChange事件

<div ng-app="myapp" ng-controller="myctrl"> 
    <textarea ng-change="show($event)" name="" id="" cols="30" rows="10"></textarea> 
</div> 
+0

這將觸發一個特定的ID按鈕 – Blaze

+0

@JNG因爲它現在沒有。但是在show函數中,你可以用'document.querySelector(「.btn」)手動點擊按鈕,點擊();' – eltonkamami

+0

如果需要,請更新你的答案並顯示演示。謝謝 – Blaze

0

NG-變化將幫助:

<input type="textbox" ng-model="text" ng-change="change()" /> 

在控制器:

$scope.change = function() { 
    alert($scope.text); 
}; 
+0

我希望觸發按鈕不要看變化 – Blaze