ng-submit в раскрывающемся списке и textarea

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 метод из моего контроллера, который сохраняет мои изменения):

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

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

благодаря

Теги:
forms
ng-submit

1 ответ

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 в select или textarea? Я был бы счастлив, если бы я мог использовать ng-submit на select и textarea как на входе ...
  • 0
    Ng-submit хорош, потому что я могу реализовать его в одном теге (форме) один раз и просто дать тип «submit» на моей кнопке внутри формы. Поэтому легко заботиться о коде. Я однажды вызываю функцию ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню