keypress事件在离子框架中不起作用

时间:2015-06-24 17:30:39

标签: javascript jquery ionic-framework keypress keyup

事实真相很奇怪。我试图限制一个描述的textarea。在浏览器中使用“keypress”事件,一切运行良好,但应用程序无法正常工作。没有收据错误或类似的东西,只是没有工作。

var limite = 140;
$scope.resta = 0;
$('#counter').html("Quedan  "+limite+" caracteres");
  $("#text_view").keyup(function(e, $event){
      var box = $(this).val();
      var value = (box.length *100) / limite;
      $scope.resta = limite - box.length;
      if(box.length <= limite || $scope.resta > 0){
          $('#counter').html("Quedan  "+$scope.resta+" caracteres");
      }
      else{
          $('#counter').html("Quedan  "+$scope.resta+" caracteres");
          e.preventDefault();
          return;
      }               
  });

同时尝试使用keyup,如果它可以工作,但是在textarea中仍然在写,并且在用户按下空格之前不会重新设置限制。

1 个答案:

答案 0 :(得分:2)

将Angularjs和Jquery代码混合在一起并不是一种好的做法。如果您没有任何选项,则将jquery代码移动到指令。 Angularjs非常强大,所以你可以在没有jquery帮助的情况下重新安装令人惊奇的东西,减少代码量。您甚至可以在没有单个jquery代码的情况下达到您的要求。

HTML

<textarea ng-maxlength="{{limite}}" ng-change="trackChracterCount(box)" ng-model="box"></textarea>"Quedan  {{resta}} caracteres"

的Javascript

$scope.limite = 140;
$scope.resta = $scope.limite;

var trackChracterCount = function(box){
    var limite = $scope.limite;
    var resta = $scope.resta;

    $scope.resta = limite - box.length;
}