Ответ 1
Ваша кнопка нуждается в type="button"
. По умолчанию это type="submit"
, поэтому он вызывается при отправке формы.
Также кажется, что вам нужно предотвратить отправку формы при нажатии кнопки ввода, но это другая проблема.
Я написал директиву timepicker
, где я могу ввести время, и если я нажму Enter, значение будет отформатировано в определенном формате времени. Также вход будет размытым. Все работает отлично.
Проблема в том, что у меня также есть несколько кнопок в форме с директивой ng-click
. И если я ударил Enter, действие директивы ng-click
также будет вызвано. Хотя я запускаю e.preventDefault();
Это код моей директивы:
$element.keyup(function(e) {
var keyCode = e.keyCode || e.witch;
if (keyCode == 13) {
$element.blur();
// Do some more stuff here
e.preventDefault();
return false;
}
});
И код HTML:
<button class="btn btn-default" ng-click="openModal()">
<i class="icon-info-sign"></i>
</button>
Самое смешное, что директива timepicker
работает так, как ожидалось, и будет вызываться дополнительная функция openModal()
. Как это предотвратить?
Ваша кнопка нуждается в type="button"
. По умолчанию это type="submit"
, поэтому он вызывается при отправке формы.
Также кажется, что вам нужно предотвратить отправку формы при нажатии кнопки ввода, но это другая проблема.