Подтвердить что ты не робот

Диалог Angular -UI $и отправьте форму на ключ ввода

Из того, что я вижу, рекомендуемый способ обработки ключа ввода в диалогах в AngularJS заключается в размещении <form> тег и кнопку отправки внутри диалогового окна.

Достаточно справедливо, но если вы используете Angular -UI и их диалоговое окно $, форма будет просто закрываться молча при нажатии enter. нет способа перехватить это. даже если вы прикрепляете обработчики к ng-click или ng-submit, форма будет просто закрыта без возврата результата.

Есть ли что-то еще, что мне нужно сделать

[изменить]

Решив это, я должен был явно указать, что моя кнопка "Отмена" имеет тип "button". Похоже, что по умолчанию "отправить"?

Таким образом, не было никакой реальной проблемы, кроме моих навыков формы html:)

4b9b3361

Ответ 1

Чтобы ответить на мой собственный вопрос. Кажется, что кнопки по умолчанию отправляют (?), И если я явно устанавливаю их на тип = "button", тогда они не будут запускать обратную передачу при нажатии ввода в поле ввода формы.

<form>
     <input type="text" ... />
     <button type="button" ng-click=...>Cancel</button>
     <button type="submit" ng-click=...>OK</button>
</form>

таким образом, нажатие клавиши ввода в поле ввода вызовет ng-click для кнопки OK.

И как вы уже поняли html хакеры, это не имело ничего общего с диалоговыми окнами или угловыми на самом деле, это была проблема с формой html и отсутствие навыков работы в Интернете...

Ответ 2

Я верю в это, потому что ваша кнопка "ЗАКРЫТЬ" не установлена на type = "button", и я ДУМАЮ, что первый элемент, который имеет фокус, поэтому, нажимая клавишу ввода, вы вводите эту кнопку, которая по умолчанию отправит форму, Добавьте type = "button" и это должно решить.

Также, к сведению, в последней версии углового материала md-button автоматически добавляет type = "button" по умолчанию (если вы не укажете type = "submit"), чтобы избежать ситуации такого типа.