2016-05-18 5 views
0

Привет У меня есть последующий код:нг подать на выпадающего меню и текстовое поле

<form ng-submit="ctrl.commitEdit(sign)"> 
    <input ng-model="sign.Value"> 
    <input ng-model="sign.Date"> 
    <textarea ng-model="sign.Comment"></textarea> 
    <select ng-model="sign.Property"></select> 
    <button type="submit">Save</button> 
</form> 

С моей формой вокруг моих компонентов я пытался сохранить свои изменения в двух направлениях (в моей форме я зову в нг-подать метод от моего контроллера, который сохраняет мои изменения):

  • С нажатием на мою кнопку, которая имеет тип «отправить», она вызывает функцию в ng-submit моей формы. Это работает правильно! Он сохраняет
  • Затем я также хотел бы сохранить с нажатием «enter» на моей клавиатуре. Вот почему я использовал форму ng-submit с моей кнопкой типа submit. Это работает только тогда, когда я что-то меняю на своих вкладках, и в центре внимания есть! Когда я что-то меняю в своем текстовом поле, и я нажимаю «enter», он делает перерыв. Когда я меняю что-то в своем выпадающем меню и затем нажимаю «enter», он снова открывает выпадающее меню.

Поэтому я хотел бы сохранить с нажатием «enter» всеми способами, на входе, select и textarea. Как я могу это сделать?

Благодаря

ответ

1

Все, что вам нужно сделать, это использовать ngKeyup.

https://docs.angularjs.org/api/ng/directive/ngKeyup

Просто связать его с вводом кода ключа, который 13 и вызвать вашу функцию

Кроме того здесь директивы вы можете реализовать для вашей цели.

app.directive('ngEnter', function() { 
     return function(scope, element, attrs) { 
      element.bind("keydown keypress", function(event) { 
       if(event.which === 13) { 
         scope.$apply(function(){ 
           scope.$eval(attrs.ngEnter); 
         }); 

         event.preventDefault(); 
       } 
      }); 
     }; 
+0

Привет и спасибо за ваш ответ. Но почему работает ng-submit с моими входом и с моим текстовым полем и выпадающим списком нет? Когда я пишу значение на одном из моих входов и нажимаю «enter», он вызывает функцию в моем контроллере, сохраняет ее правильно. Когда я делаю то же самое в своем текстовом поле, он просто создает новую строку в текстовом поле. То же самое для моего выбора, он снова открывает выпадающий список и показывает элементы. Это из-за поведения браузера по умолчанию, нажав enter в select или textarea? Я был бы рад, если бы я мог использовать ng-submit на select и textarea, как на входе ... – MrBuggy

+0

ng-submit хорош, потому что я могу реализовать его в одном теге (форме) один раз и просто дать тип " submit "на моей кнопке в моей форме. Поэтому для кода легко ухаживать. Я когда-то называю функцию ... – MrBuggy

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