html forms lastpass

html - Detener LastPass rellenando un formulario



forms (11)

¿Hay alguna manera de evitar que la extensión del navegador LastPass complete un formulario basado en HTML con un campo de entrada con el nombre "nombre de usuario"?

Este es un campo oculto, por lo que no quiero que ningún software use este campo para sus propósitos:

<input type="text" name="username" id="checkusername" maxlength="9" value="1999" class="longinput" style="display:none">

La solución no debería ser como "cambiar el nombre del campo de entrada".


Añadiendo

data-lpignore="true"

a un campo de entrada inhabilitó el cuadro [...] gris LastPass para mí.

Procedente de LastPass.com


Agregue "búsqueda" para ingresar la identificación

<input type="text" name="user" id="user-search"/>


Creo que lastpass respeta el atributo autocomplete="off" para las entradas, pero no estoy 100% seguro.

EDITAR Como otros han señalado. esto solo funciona si el usuario tiene la última pasada configurada para cumplir esto.


Dos condiciones deben cumplirse:

  1. La forma (no el elemento) necesita tener el atributo autocomplete="off"
  2. Lastpass usuario necesita tener esta opción habilitada: Settings > Advanced > Allow pages to disable autofill

Entonces esto depende tanto del usuario como del desarrollador.


Este código de estilo ES6 fue útil para mí ya que agregó data_lpignore a todos mis controles de entrada:

const elements = document.getElementsByTagName("INPUT"); for (let element of elements) { element.setAttribute("data_lpignore", "true"); }

Para acceder a un control de ENTRADA específico, uno podría escribir algo como esto:

document.getElementById(''userInput'').setAttribute("data_lpignore", "true");

O bien, puedes hacerlo por nombre de clase:

const elements = document.getElementsByClassName(''no-last-pass''); for (let element of elements) { element.setAttribute("data_lpignore", "true"); }


Intenté el cambio de búsqueda -search pero por alguna razón eso no funcionó. Lo que funcionó para mí es lo siguiente:

  1. marcar formulario para autocompletar - autocompletar = "off"
  2. cambiar el tipo de entrada del campo de formulario a texto
  3. agrega una nueva clase a tu css para enmascarar la entrada, simula un campo de contraseña
  4. css bit: input.masker {-webkit-text-security: disco; }

Probado y probado en las últimas versiones de FF y Chrome.


Lo que funcionó para mí es tener la palabra "-search-" en el id del formulario, algo así como <form id="affiliate-search-form"> - y lastpass no agrega sus elementos a las entradas del formulario. Funciona con algo más simple como <form id="search"> pero no funciona con <form id="se1rch">


Ninguna de las opciones aquí impidió que LastPass completara automáticamente mis campos de formulario por desgracia. Tomé un enfoque más crítico para el problema y, de forma asincrónica, establecí los atributos del name entrada a través de JavaScript. La siguiente función dependiente de jQuery (invocada desde el controlador de eventos onsubmit del formulario) hizo el truco:

function setInputNames() { $(''#myForm input'').each(function(idx, el) { el = $(el); if (el.attr(''tmp-name'')) { el.attr(''name'', el.attr(''tmp-name'')); } }); } $(''#myForm'').submit(setInputNames);

En la forma, simplemente utilicé tmp-name atributos tmp-name en lugar de los atributos de name equivalentes. Ejemplo:

<form id="myForm" method="post" action="/someUrl"> <input name="username" type="text"> <input tmp-name="password" type="password"> </form>


Para mí funciona type=search que es un poco igual a text o usa role=note .

Puede verificar LastPass-JavaScript pero es enorme, puede que encuentre alguna solución allí, por lo que vi solo revisan 4 tipos de entrada, por lo que input type=search sería una solución:

!c.form && ("text" == c.type || "password" == c.type || "url" == c.type || "email" == c.type) && lpIsVisible(c))

También esos son los role -palabras clave que parecen ignorar:

var c = b.getAttribute("role"); switch (c) { case "navigation": case "banner": case "contentinfo": case "note": case "search": case "seealso": case "columnheader": case "presentation": case "toolbar": case "directory":`

onloadwff.js LastPass '' onloadwff.js , me preparo para 26.960 líneas de código :)


Sé que llego tarde a la fiesta aquí, pero encontré esto cuando estaba tratando de evitar que el último paso arruine mis formularios. @takeshin tiene razón en que la autocompleta no es suficiente. Terminé haciendo el truco más abajo solo para ocultar el símbolo. No es bonito, pero me deshice del ícono.

Si algún desarrollador último paso está leyendo esto, por favor, danos un atributo para usar, para que no tengamos que recurrir a cosas como esta.

form[autocomplete="off"] input[type="text"] { background-position: 150% 50% !important; }


Un poco tarde para la fiesta, pero acabo de lograr esto modificando el formulario con:

<form autocomplete="off" name="lastpass-disable-search">

Supongo que estos tontos piensan que es un formulario de búsqueda. ¡Sin embargo, esto no funciona para los campos de contraseña! Lastpass ignora el campo de nombre en este caso.

La única forma en que logré hacer esto es agregar lo siguiente directamente en la parte superior del formulario:

<form autocomplete="off"> <div id="lp" ><input type="text" /><input type="password" /></div><script type="text/javascript">setTimeout(function(){document.getElementById(''lp'').style.display = ''none''},75);</script> </form>

Provoca un desagradable parpadeo pero elimina las tonterías de autocompletar, aunque muestra el widget "generar contraseña". LastPass espera hasta que esté listo y luego verifica si hay campos de contraseña visibles, por lo que no es posible ocultar o reducir los campos de simulación anteriores.