Tengo 2 casillas de verificación dentro de un formulario y tanto las casillas de verificación se ajusta dentro de un form.

Para uno de form he añadido el atributo autocomplete="off".

A continuación es el fragmento de código

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head></head>
    <body>
        <form name="chkBoxForm" >
            <div>
                <input type="checkbox" value="100" name="product"/>My Checkbox1
            </div>
        </form>
        <form name="chkBoxForm" autocomplete="off">
            <div>
                <input type="checkbox" value="200" name="product"/>My Checkbox2                         
            </div>
        </form>
    </body>
</html>

Ahora mi problema aquí si nos marque las casillas de verificación manualmente y si pulsamos F5, a continuación, la casilla de verificación con el atributo autocomplete="off" tengo desactivada. Pero la casilla de verificación que no tiene ese atributo sigue marcada. Esto sucede en FireFox 22.

Este comportamiento varía de un Navegador a otro.

En IE, tanto en las casillas sigue marcada y en Chrome tanto en las casillas de verificación fueron desactivada.

Pero cuando yo pulse enter en la barra de direcciones, se obtiene desactivada en todos los navegadores.

Alguien me puede decir cómo tienen esas casillas sin marcar siempre cuando nos pulse F5?

Soy consciente de que esto puede ser manejado a través de Javascript.

¿Hay algún otro html manera de manejar esto?

  • Duplicado: stackoverflow.com/questions/299811/…
  • Lo que el contexto es este formulario html que se ejecuta bajo? Quiero decir, ¿esto es para un asp.net aplicación, o algo más? Que yo sepa, cuando se vuelve a cargar la página, a menos que usted tenga una cookie o un viewstate, las casillas volverá a su estado predeterminado.
  • Esto es sólo una página html independiente
  • esta es una función del navegador para mantener los campos de formulario llenado en caso de un escape accidental de recarga.
  • Tal vez la diferencia en el comportamiento de pulsar enter ser considerado como una nueva carga de la página, en contraposición a presionar f5 ser considerado como una re-carga?
  • sí, esa es la razón.
  • alguna razón en particular contra el uso de JavaScript? sería sólo un atributo, además de la casilla de marcado
  • No hay nada en contra de JavaScript.Desde que yo era consciente de que la solución, sólo quiero saber es que cualquier cosa puede ser hecha a través de html en sí

InformationsquelleAutor Vel | 2013-07-18

7 Comentarios

  1. 18

    No, no hay ninguna manera en HTML simple. Javascript puede ser la única solución en este momento..

    Bucle a través de todas las casillas de verificación en javascript y que no seleccionada:

    var checkboxes = document.getElementsByTagName('input');
    
    for (var i=0; i<checkboxes.length; i++)  {
      if (checkboxes[i].type == 'checkbox')   {
        checkboxes[i].checked = false;
      }
    }

    envuélvalo en un onload oyente y que debe estar bien entonces 🙂

  2. 10

    jQuery

    $('input[type=checkbox]').removeAttr('checked');

    O

    <!-- checked -->
    <input type='checkbox' name='foo' value='bar' checked=''/> 
    
    <!-- unchecked -->
    <input type='checkbox' class='inputUncheck' name='foo' value='bar' checked=''/> 
    <input type='checkbox' class='inputUncheck' name='foo' value='bar'/> 

    +

    $('input.inputUncheck').removeAttr('checked');
    • Como de jquery 1.6, este debe ser .prop('checked', false).
  3. 5

    Si usted tiene una casilla de verificación con un id checkbox_id.Usted puede establecer su estado con JS con prop('checked', false) o prop('checked', true)

     $('#checkbox_id').prop('checked', false);
    • a partir De la revisión de la cola: ¿puedo pedir que, por favor, añadir un poco más de contexto alrededor de su respuesta. Código sólo respuestas son difíciles de entender. Esto ayudará a la persona que pregunta y el futuro de los lectores, tanto si usted puede agregar más información en tu post.
  4. 2

    Una solución rápida que se me vino a la mente :-

    <input type="checkbox" id="markitem" name="markitem" value="1" onchange="GetMarkedItems(1)">
    <label for="markitem" style="position:absolute; top:1px; left:165px;">&nbsp</label>
    <!-- Fire the below javascript everytime the page reloads -->
    <script type=text/javascript>
      document.getElementById("markitem").checked = false;
    </script>
    <!-- Tested on Latest FF, Chrome, Opera and IE. -->
  5. 1

    Este es el comportamiento específico del explorador, y es una forma para hacer el llenado de los formularios más cómodo para los usuarios (como necesidad de recargar la página cuando se ha encontrado un error y no perder lo que acaba de escribir). Así que no hay manera segura de deshabilitar esta a través de navegadores corto de la configuración de los valores predeterminados de la carga de la página con javascript.

    Firefox aunque parece desactivar esta función cuando se especifica el encabezado:

    Cache-Control: no-store

    Ver este pregunta.

    • Yo no creo que eso es una buena solución como usted dijo, si aparece un error, el usuario tiene que escribir todo de nuevo. El uso de javascript no toque los campos de entrada de texto, mientras que todavía se ajuste a lo que usted desea para su estado deseado.
    • De acuerdo. No creo que la desactivación de esta función es en absoluto una buena idea (por javascript o el encabezado de caché). Si el usuario ha cambiado el valor, entonces es probable que, él o ella va a poner en el mismo valor de nuevo, si la página se actualizó por alguna razón. Pero esto es lo que el OP estaba pidiendo
    • Sí, seguro, pero con el javascript solución, usted todavía tiene el control total de lo que para restablecer. De esta manera usted podría simplemente restablecer las casillas de verificación, pero deje los campos de texto como son.
  6. 1

    Una manera fácil , sólo HTML, javascript no, no jQuery

    <input name="box1" type="hidden"   value="0" />
    <input name="box1" type="checkbox" value="1" />

Dejar respuesta

Please enter your comment!
Please enter your name here