Чтобы окно с просьбой сохранить пароль отображалось автоматически во всех браузерах, нужно обеспечить правильное поведение браузера, которое подразумевает стандартную отправку формы. Когда вы используете `@submit.prevent` в Vue.js, это предотвращает стандартное поведение отправки формы, и, следовательно, браузер не сможет отобразить диалоговое окно с вопросом о сохранении пароля из-за отсутствия отправки данных на сервер.
Вот несколько рекомендаций для достижения желаемого поведения:
1. **Удаление `@submit.prevent`**: Попробуйте убрать `@submit.prevent` и просто использовать событие `submit`, чтобы форма отправлялась нормальным образом. Например:
```html
<form id="login" name="login" autocomplete="on" action="ваша_адреса_для_отправки" method="POST">
<input type="tel" name="phone" required placeholder="Телефон" autocomplete="tel" id="tel" pattern="^(?<code>\+?\d{1,3})[\-\s]{0,}(?<number>\(?\d{3}\)?[\-\s]{0,}\d{3}[\-\s]{0,}\d{2}[\-\s]{0,}\d{2})$">
<input type="email" name="email" required placeholder="E-mail" autocomplete="username email" id="email">
<input type="password" name="password" required placeholder="Пароль" maxlength="16" minlength="8" autocomplete="current-password" id="current-password" pattern=".{8,16}">
<input type="submit" value="Войти">
</form>
```
2. **Обработка отправки формы**: Если вам нужно выполнять какую-то логику перед отправкой формы, можно сделать это в обработчике события `submit`:
```html
<form id="login" name="login" autocomplete="on" @submit="onSubmit">
...
</form>
```
И в вашем методе `onSubmit` добавьте следующие строки после выполнения нужной вам логики:
```javascript
methods: {
onSubmit(event) {
// Ваша логика перед отправкой формы
// Отправить форму, если всё в порядке
event.target.submit();
}
}
```
3. **Правильные атрибуты autocomplete**: Убедитесь, что атрибуты `autocomplete` у полей формы установлены правильно. Для поля с паролем лучше использовать `autocomplete="new-password"` или `autocomplete="current-password"`, в зависимости от вашего случая использования. Убедитесь также, что все поля имеют соответствующие значения для `autocomplete`, чтобы максимально поддержать функционал автозаполнения в браузерах.
Важно помнить, что некоторые браузеры могут вести себя по-разному, особенно в зависимости от настроек пользователя и политики безопасности, но вышеуказанные изменения должны помочь значительно увеличить вероятность появления диалога для сохранения пароля.