2017-01-21 14 views
0

Директивы определяется добавить цифровой вход

app.directive('numericCheck', function() { 
    return { 
     link: function (scope, element, attr) { 
      element.on('keypress', function (event) { 
       event = (event) ? event : window.event; 
       if(/Firefox/.test(window.navigator.userAgent) && event.keyCode!=0) { 
        return true; 
       } 
       var charCode = (event.which) ? event.which : event.keyCode; 
       if (charCode > 31 && charCode != 46 && charCode != 47 && charCode != 45 && (charCode < 48 || charCode > 57) || (charCode==45 && (event.target.selectionStart!=0 || event.target.value.indexOf('-')>=0)) || (charCode==46 && event.target.value.indexOf('.')>=0) || (charCode==47 && (event.target.selectionStart==0 || event.target.value.indexOf('/')>=0))) { 
        return false; 
       } 
       return true; 
      }); 
     } 

    }; 
}); 

Ниже строка ответ добавлен в DIV.

{"question":"Two identical charts have different parts shaded. Which one is greater - 0.02 or 0.04?<br><br><br><br><input type='text' id='b1' name='blank_1' class='num_blank' size='5' numeric-check> is the greater number."} 

После добавления ответа на HTML-цифровую проверку, директива не работает, и это позволяет ввести все символы вместо только числовых значений.

+0

Привет .. Вы пытались поставить что-то вроде: –

+0

, потому что вы не можете просто добавить новый элемент для получения угловых функций, вам нужно скомпилировать его с угловым, чтобы избавиться от этой проблемы. answer http://stackoverflow.com/a/16091279/3769965 –

ответ

0

Вы пробовали поставить что-то вроде:

app.directive('numericCheck', function() { 
return { 
    link: function (scope, element, attr) { 
     element.on('keypress', function (event) { 
scope.$apply(function(){ 
      event = (event) ? event : window.event; 
      if(/Firefox/.test(window.navigator.userAgent) && event.keyCode!=0) { 
       return true; 
      } 
      var charCode = (event.which) ? event.which : event.keyCode; 
      if (charCode > 31 && charCode != 46 && charCode != 47 && charCode != 45 && (charCode < 48 || charCode > 57) || (charCode==45 && (event.target.selectionStart!=0 || event.target.value.indexOf('-')>=0)) || (charCode==46 && event.target.value.indexOf('.')>=0) || (charCode==47 && (event.target.selectionStart==0 || event.target.value.indexOf('/')>=0))) { 
       return false; 
      } 
      return true; 
}); 
     }); 
    } 

};

+0

Вышеупомянутое решение не работает. – Rochak

 Смежные вопросы

  • Нет связанных вопросов^_^