html - remove - disable autocomplete chrome
Deshabilitar el Autocompletar de Firefox (11)
Firefox solo respeta autocomplete="off"
en el formulario, no elementos individuales (a diferencia de IE).
Otra opción es cambiar los nombres de campo a cosas extrañas como name="_u_sern_ame"
para confundir cualquier sistema de reconocimiento de campo si desea deshabilitar el autocompletar de detalles de alguien.
¿Es posible desactivar la función de autocompletar de Firefox sin desactivar el autocompletar?
Sé que puedo hacerlo:
autocomplete="off"
Pero no quiero deshabilitar el autocompletado, solo el autocompletar.
Firefox está poblando algunos de nuestros campos ocultos que están destinados a estar vacíos
Esto es principalmente un problema cuando el usuario actualiza la página. Los campos de formulario se vuelven a llenar con valores de pre-actualización. Un ejemplo de que este es un problema es el titular de lugar de la vieja escuela. Donde llenamos el campo con un valor, y lo eliminamos al enviarlo. El valor se vuelve a llenar al actualizar y no sabemos si es el marcador de posición o el valor de uso.
Si se trata de un error de Firefox, puedes usar un evento onSubmit para borrar los campos ocultos. En el código del formulario:
<form onSubmit="clearFieldsIfPopulated(this)">
<input type="hidden" name="field1"> <input type="submit">
</form>
Ejemplo de función de Javascript:
function clearFieldsIfPopulated(form) {
if (form.field1.value != "") {
form.field1.value == "";
}
}
Esta publicación sugiere utilizar (otros) campos ficticios que se rellenarán automáticamente, puede ocultarlos con css. Pero esto probablemente funcionaría mejor con campos de contraseña que otros.
Si el problema es que FF está rellenando los campos cuando el usuario se actualiza, esta es en realidad una característica de Firefox que intenta ayudar al usuario en caso de actualización accidental para que no pierda lo que haya tipeado. No creo que puedas anular esto con el HTML. Puede usar JavaScript para borrar / restablecer todos los valores de formulario relevantes en la carga de la página. Si un form.reset () en el formulario no funciona, tendrá que iterar sobre los elementos del formulario y borrarlos así:
for (i = 0; i < frm_elements.length; i++)
{
field_type = frm_elements[i].type.toLowerCase();
switch (field_type)
{
case "text":
case "password":
case "textarea":
case "hidden":
frm_elements[i].value = "";
break;
case "radio":
case "checkbox":
if (frm_elements[i].checked)
{
frm_elements[i].checked = false;
}
break;
case "select-one":
case "select-multi":
frm_elements[i].selectedIndex = -1;
break;
default:
break;
}
}
Yo tuve este problema yo mismo. La respuesta de Mike es cercana, pero no perfecta en mi opinión: vacía elementos, incluso si un atributo de value
puede querer configurarlo.
En la carga de la página, hago lo siguiente. Utiliza solo un poco jQuery.
// Reset input elements to their HTML attributes (value, checked)
$("input").each(function(){
// match checkbox and radiobox checked state with the attribute
if((this.getAttribute(''checked'')==null) == this.checked)
this.checked = !this.checked;
// reset value for anything else
else this.value = this.getAttribute(''value'')||'''';
});
// Select the option that is set by the HTML attribute (selected)
$("select").each(function(){
var opts = $("option",this), selected = 0;
for(var i=0; i<opts.length; i++)
if(opts[i].getAttribute(''selected'')!==null)
selected = i;
this.selectedIndex = selected||0;
});
No jQuery?
Use document.getElementsByTagName
para seleccionar las input
y select
s, luego itere sobre ellas y reemplácelas por el elemento iterado.
Seleccione las opciones con .getElementsByTagName(''option'')
.
He tenido un problema similar para el campo de contraseña en un formulario en la página.
Si hay una etiqueta de entrada con tipo = contraseña en una etiqueta de formulario en la página, Firefox está completando automáticamente la contraseña:
<form>
<input type=''password'' />
</form>
Aquí está el código que utilicé para solucionar este problema específico:
$(''input[type=password]'').val('''')
autocomplete=''off''
no impedirá que en entrada o en forma ponga un
<input type=''password'' style=''display: none;'' />
antes de tu entrada de contraseña real.
Poner dos campos ficticios entre el campo de nombre de usuario real y el campo de contraseña real funcionó para mí, por ejemplo:
<Input name = "Username" type="text" autocomplete="off">
<Input name = "DummyUsername" type="text" style="display:none;">
<Input name = "DummyPassword" type="password" style="display:none;">
<Input name = "Password" type="password" autocomplete="new-password">
Esto impidió el autocompletado del nombre de usuario, así como también la autocompletación de la contraseña.
autocomplete = "new-password" aparentemente no está completamente implementado, pero puede ayudar con algunos navegadores. Dudo que haya sido útil con FireFox, pero está ahí para futuras versiones en caso de que la característica sea más ampliamente adoptada.
Esto realmente funciona con un campo de contraseña en Firefox:
$(window).load(function(){
$(''#pass'').val('''');
});
lo que funcionó para mí es
autocomplete="new-password"
En algunos casos, el navegador seguirá sugiriendo valores de autocompletado incluso si el atributo de autocompletar está desactivado. Este comportamiento inesperado puede ser bastante desconcertante para los desarrolladores. El truco para realmente forzar el autocompletado es asignar una cadena aleatoria al atributo, por ejemplo:
autocomplete="nope"
¡Probé en los principales navegadores y funciona!