Как узнать, что форма Chrome не содержит полей для кредитных карт? - PullRequest
0 голосов
/ 04 марта 2019

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

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

Имена полей, в которых она пытается заполнить информацию о кредитной карте:

  • reg_id (здесь вводится номер CC)
  • emergency_first_name (здесь вводится имя)
  • emergency_last_name (здесь вводится фамилия)

Я не хочу отключать автозаполнение, еслиМне не нужно.

Разочарование в том, что Chrome «знает лучше», когда он игнорирует любое значение autocomplete, включая off:

<input autocomplete="off" value="" size="10" maxlength="10" id="id_reg_id" name="reg_id" type="text">

Изменить: обновлены следующие ответы.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Ваш браузер не должен запоминать номер вашей кредитной карты по умолчанию - я могу только предположить, что вы ввели поле, в котором было указано «универсальное» значение autocomplete.Вы всегда можете заставить свой браузер забыть эту информацию, просто нажав Удалить при выборе (с помощью клавиш со стрелками) в раскрывающемся списке параметров предварительной заливки.

Что касается предотвращения его появления в определенных полях, это зависит от того, какую информацию вы хотите хранить в каждом поле, но есть широкий массив из autocomplete значений, которые вы можете использовать.Вы можете использовать number для идентификаторов, а два других упомянутых вами поля на самом деле содержат специализированные значения autocomplete, given-name и family-name:

<input name="reg_id" autocomplete="number" />
<input name="emergency_first_name" autocomplete="given-name" />
<input name="emergency_last_name" autocomplete="family-name" />

Если number просто не обрежет его, вы также можете использовать регулярное выражение JavaScript для дальнейшего ограничения ввода:

const regex = new RegExp("^[a-zA-Z]+$");
const form = document.getElementsByTagName('form')[0];
const reg_id = document.getElementsByTagName('input')[0];

form.addEventListener('click', function(e) {
  e.preventDefault();
  if (regex.test(reg_id)) {
    this.submit();
  }
});
<form>
  <input name="reg_id" autocomplete="number" />
  <input name="emergency_first_name" autocomplete="given-name" />
  <input name="emergency_last_name" autocomplete="family-name" />
</form>
0 голосов
/ 04 марта 2019

try

input type = "custom"

или используйте textarea с одной строкой и измените размер

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