Автозаполнение ввода, связанного с ng-моделью - PullRequest
1 голос
/ 29 мая 2020

У меня очень простое c поле имени пользователя / пароля, и оно привязано через ng-model к двум свойствам на моем контроллере. Они настроены следующим образом:

    loginModel = {
        username: '',
        password: ''
    };

Они привязаны к элементам ввода следующим образом:

input(autocomplete="off" data-original-title="The email you entered is incorrect. Please try again (make sure your caps lock is off)." data-placement="top" data-toggle="tooltip" data-type-in="" data-val="true" data-val-required="The UserName field is required." name="UserName" placeholder="Email" required="required" type="email" value="" ng-model="signInVm.loginModel.username" ng-change="signInVm.checkForm()" am-autofocus)

input.inspectletIgnore(data-original-title="The password you entered is incorrect. Please try again (make sure your caps lock is off)." data-placement="top" data-toggle="tooltip" data-type-in="" data-val="true" data-val-required="The Password field is required." name="Password" placeholder="Password" required="required" type="password" value="" ng-model="signInVm.loginModel.password" ng-change="signInVm.checkForm()")

У меня есть кнопка отправки, которая проверяет, соответствуют ли поля имени пользователя и пароля заполняется, чтобы определить, отключен он или нет, через ng-disasbled

button.btn.btn-secondary.btn-signin(type="submit" ng-disabled="!signInVm.canSubmit" ng-click="signInVm.tryLogin()" ng-if="!signInVm.isLoggingIn") Sign In

Проблема, с которой я сталкиваюсь, заключается в том, что когда страница загружается и Chrome автоматически заполняет два поля, кажется, что эти два поля пусты, поэтому кнопка отправки неактивна, несмотря на то, что форма, казалось бы, была заполнена правильно. После того, как вы сделаете что-нибудь на странице, например, щелкнете в любом месте или нажмете что-нибудь на клавиатуре, поля обнаружат автоматически заполненные данные, а затем станет активной кнопка отправки.

Я думаю, это потому, что изначально поля определены как '', потому что, если я установил значения на что-то другое (например, hello@world.com), тогда кнопка будет активна ... но тогда поля будут предварительно заполнены жестко закодированными данными в контроллере, кроме автозаполнения . Я не могу придумать никакого способа обойти это. Я хочу, чтобы поля были пустыми по умолчанию, но если они заполняются автоматически, я хочу, чтобы код немедленно распознал это и сделал кнопку отправки активной, без необходимости сначала взаимодействовать с браузером. Есть какой-либо способ сделать это? Я чувствую, что должно быть невероятно простое решение, которого мне не хватает, но я действительно не могу придумать его, несмотря на все мои усилия.

Надеюсь, мой вопрос имеет смысл. Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...