He encontrado lo que creo que es un error con Firefox y me pregunto si esto realmente es un bug, así como soluciones para esta.

Si crear una página básica con la siguiente fuente:

<html>
  <head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
  </head>
  <body>
    <div>
      <input id="txtTest" type="text" />
      <input type="button" onclick="$('#txtTest').attr('disabled','disabled');" value="Set Disabled (jQuery)" />
      <input type="button" onclick="document.getElementById('txtTest').disabled = true;" value="Set Disabled (js)" />
      <input type="button" onclick="$('#txtTest').removeAttr('disabled');" value="Remove Disabled" />
    </div>
  </body>
</html>

Si disable la textbox de forma dinámica y, a continuación, actualice la página, el textbox permanecerá desactivada en lugar de regresar a su estado original de los no discapacitados. He intentado esto en IE8 y Chrome y aquellos que se comportan como cabría esperar, el restablecimiento de la textbox regresar a la no movilidad al actualizar.

Otro interesante bits de información es que aún no la misma cosa, si la entrada es un checkbox en lugar de un textbox.

  • Está usted seguro de que no sólo el Firefox «característica», donde se recuerda el estado de input elementos cuando simplemente actualizar?
  • Me preguntaba sobre eso también, así que yo también traté de experimentar con dinámicamente la configuración de la «talla» del atributo, y que consigue restablecer al actualizar, al igual que todos los otros navegadores. Por lo que se ve como lo que he descubierto hasta ahora es que Firefox va a retener el atributo disabled así como el valor real de la entrada, pero no el tamaño…
  • Wow, tienes razón! Me puse de autocomplete=»off» en la entrada y eso ya no sucede. Eso es bastante incómodo que firefox se convierte que por defecto!
  • Sí, me había olvidado usted puede desactivar con autocomplete="off". Esta entrada del blog parece familiar para mí, así que definitivamente he llegado a través de esta antes. Usted debe escribir una respuesta a su propia pregunta (o debería?)
  • Hay un abrir Mozilla informe de error con respecto a esto: bugzilla.mozilla.org/show_bug.cgi?id=654072
InformationsquelleAutor Stephen Mesa | 2011-05-12

3 Comentarios

  1. 123

    Este es un «característica» de Firefox, la cual recuerda la forma de los valores de entrada a través de la página se actualiza. Para corregir este comportamiento, simplemente establezca autocomplete="off" en el formulario que contiene las entradas, o simplemente directamente a la entrada.

    Este deja de autocompletar de trabajo y evita que el navegador de recordar el estado de los campos de entrada.

    Alternativamente, usted puede simplemente «duro-actualizar» haciendo clic en CTRL+F5. Esto va a restablecer completamente la página actual.

    • Acabo de dar con este problema cuando el usuario hace clic en el botón atrás, parece autocomplete="off" no funciona en ese caso.
    • no quiero un formulario, solo tengo un solo botón y Firefox «recuerda» que las personas discapacitadas..molesto. Puedo restablecer a través de JS pero..feo.
    • Intente configurarlo en el botón de entrada/elemento. Debería funcionar, también!
    • Usted puede incluso tener que hacer esto en los botones. Me resulta difícil creer que esta es una característica y no un bug?
    • esto también afecta a escondidas entradas también
    • Esto me estaba volviendo loco. Estoy usando jQuery botón. Comando de Actualización y el botón estaba habilitado, pero regular de actualización y no fue. No tenía ningún sentido, gracias @esteban mesa.
    • Ajuste en la formulario es un poco más de-the-top, pero, lamentablemente, MDN dice omite el atributo en básicamente todos pero type=text – el inglés de la página vinculado yo aquí, sin embargo, la alemán de la página menciona el ignorar el problema (la función de autocompletar párrafo es actualmente todavía en inglés!) CITA: Este atributo se ignora si el valor del atributo type se oculta, checkbox, radio, archivo, o un tipo de botón (botón de submit, reset, imagen).
    • Informó en bugzil.la/654072
    • Primera vez que se produzca este problema y su solución trabajado fuera de la caja. Pero me puse sólo en el botón en lugar de todo el formulario, como autocompletar es una gran característica para los campos también. Gracias

  2. 9

    Para lidiar con el botón atrás, hacer esto (de aquí)

        window.addEventListener('pageshow', PageShowHandler, false);
        window.addEventListener('unload', UnloadHandler, false);
    
        function PageShowHandler() {
            window.addEventListener('unload', UnloadHandler, false);
        }
    
        function UnloadHandler() {
            //enable button here
            window.removeEventListener('unload', UnloadHandler, false);
        }
    • No sé por qué esta respuesta tiene sólo una votación, mientras que la otra respuesta tiene 99. La restauración de las personas con discapacidad del estado de descargar es mejor que la desactivación de la función autocompletar, ya que la función autocompletar es una conveniente funcionalidad.
    • Creo que //enable button here es redundante aquí; mi comprensión de los referidos docs es que simplemente el presencia de escucha de eventos va a evitar que la página se almacena en el BFcache.
    • Tenga en cuenta que la adición de un controlador de descarga tiene otros efectos secundarios en Firefox: developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/1.5/…
  3. 1

    Como se mencionó antes de que usted necesita para agregar autocomplete="off" a los botones.

    Aquí es un sh+perl fragmento de código para automatizar esta tarea en el caso de <button>s en los archivos HTML/plantillas (bajo algunos supuestos):

    find /path/to/html/templates -type f -name '*.html' -exec perl -pi -e \
      's/(?<=<button )(.*?)(?=>)/@{[(index($1,"autocomplete=")!=-1?"$1":"$1 autocomplete=\"off\"")]}/g' \
      {} +

    Los supuestos son:

    • Apertura <button> etiquetas comienzan y terminan en la misma línea. Si este no es el caso (es decir, que puede ser dividido en varias líneas), a continuación, en sustitución de /g con /gs debe ayudar (el s modificador causas . para que coincida con el carácter de nueva línea así)

    • HTML válido (por ejemplo, no hay caracteres divertidos entre < y >) y no sin escape es mayor que (>) dentro de la etiqueta de apertura.

Dejar respuesta

Please enter your comment!
Please enter your name here