Pregunta

Entonces, tengo una casilla de verificación

<asp:CheckBox ID="chkOrder" runat="server" Visible='<%#IsCheckBoxVisible() %>' 
     Checked="false"
     OnCheckedChanged="chkOrder_CheckedChanged" AutoPostBack="true" 
     EnableViewState="false"></asp:CheckBox>

el de arriba. Ahora, la casilla de verificación está en una vista de cuadrícula y en una base de datos: para todas las filas de la vista de cuadrícula, la casilla de verificación se establece en falso. El problema es que la primera casilla de verificación sigue siendo verdadera marcada.

En IE el problema no existe, igual para Chrome. Me estoy quedando sin opciones. También si uso

$("checkboxName").attr("checked"); // verified on jquery ready function.

En FF es cierto; IE falso; Cromo falso

¿Algún consejo?

EDIT

Ahora prepárese para esto: en el html generado - NO hay un atributo marcado. La diferencia entre FF e IE es exactamente igual .

Otra cosa: la cuadrícula que contiene las casillas de verificación tiene un panel ajax y cuando reconozco la cuadrícula, intento ir a la página 2: se activa el cambio en el código de código.

¿Fue útil?

Solución

En algunos códigos php que hice recientemente, noté que FF3 estaba recordando lo que verifiqué, incluso después de una actualización de la página F5. Mirar la fuente mostró el HTML correcto que quería generar. Para solucionar este problema, vaya a la barra de direcciones y vuelva a forzar la solicitud de la página.

Por qué fue necesario este trabajo, no estoy seguro, pero desde una perspectiva de usabilidad normal lo aprecié, pero no durante el desarrollo.

Otros consejos

Firefox recuerda el estado de los campos de formulario de forma predeterminada. Ctrl + F5 forzará a Firefox a borrar este caché.

Puede deshabilitar esto para elementos de entrada y formulario individuales:

<form autocomplete="off"> 

<input ... autocomplete="off" /> 

Debes omitir " marcado " atributo completo si no desea que se marque la casilla de verificación, ya que la verificación se activa mediante la presencia de un atributo verificado , no su valor:

  

Las casillas de verificación (y los botones de radio) son interruptores de encendido / apagado que pueden ser activados por el usuario. Un interruptor está " en " cuando se establece el atributo marcado del elemento de control .

http://www.w3.org/TR/html401/ interact / forms.html # checkbox

Para mí, el siguiente marcado produce una casilla de verificación que está marcada en IE, Firefox y Opera, como es de esperar según la especificación:

<input type="checkbox" checked="false">

Esto arroja luz sobre una peculiaridad interesante con casillas de verificación. Aquí hay un html muy simple que se me ocurrió para resumirlo correctamente:

<html>
<body>

<input type="checkbox" checked="false" id="cb" />

<script language="javascript">
if (cb.checked == true)
  document.write('this is retarded');
</script>

</body>
</html>

¿Ha intentado comparar el HTML genérico de FF e IE? (con " ver fuente html ")

Solo para localizar el problema un poco más precisamente. Es solo una pequeña posibilidad, pero si el HTML es diferente para ambos navegadores, tiene un problema en el lado del servidor por la forma en que ASP crea el HTML.

Si ambos son lo mismo, y en una queja completamente HTML, ha encontrado un error en FF,

Esto también sucede al seleccionar cuadros en FireFox 3, lo que puede ser un gran problema si utiliza dicho cuadro para ejecutar AJAX / actualizar la página.

Si el usuario actualiza la página o realiza alguna operación de botón de retroceso, puede terminar con el cuadro de selección aún seleccionado, pero en realidad debe deseleccionar y volver a seleccionar para volver a ejecutar el AJAX.

En este caso, he encontrado que usar el evento body onunload para borrar cualquier casilla de verificación / selección " resuelve " el " problema " ;.

$("input[id$=chkOrder]").click(function() {        
    if (!$(this).attr("checked")) { $(this).removeAttr("checked"); }
    else { $(this).attr("checked", "checked"); }
})
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top