Frage

Also - ich habe eine Checkbox

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

das oben. Nun ist das Kontrollkästchen in einem Gridview und Databound - für alle Zeilen in der Gridview das Kontrollkästchen auf false gesetzt ist. Das Problem ist, dass das erste Kontrollkästchen ist immer noch wahr geprüft.

Im IE das Problem nicht existiert, gleich für Chrome. Ich bin aus der Optionen laufen. Auch wenn ich verwende

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

In FF es ist wahr; IE false; Chrome false.

Irgendwelche Tipps?

Bearbeiten

Jetzt bereit für diese: in der generierten HTML - kein Attribut checked. Die diff zwischen IE und FF ist genau die gleiche .

Eine andere Sache - das Raster, das die Kontrollkästchen hat eine Ajax-Panel auf es enthält und wenn ich Seite des Gitters, versuchen zu Seite gehen. 2 - die CheckedChanged in Code-Behind ausgelöst wird,

War es hilfreich?

Lösung

In einiger PHP-Codierung ich vor kurzem tat, bemerkte ich, dass FF3 erinnert, was ich geprüft, auch nach einer F5 Aktualisierung der Seite. an der Quelle der Suche zeigte die richtige HTML, die ich erzeugt wollte. Um Arbeit war auf die Adressleiste zu gehen und zwingen, die Anforderung für die Seite erneut.

Warum um diese Arbeit notwendig war, bin ich nicht sicher, aber von einer normalen Usability Perspektive Ich schätzte es, nicht nur während der Entwicklung.

Andere Tipps

Firefox merkt sich die von Formularfeldern standardmäßig. Ctrl+F5 wird Firefox zwingen, diesen Cache zu löschen.

Sie können dies für einzelne Form und Eingabeelemente deaktivieren:

<form autocomplete="off"> 

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

Sie sollten weglassen des Attribut „checked“ vollständig, wenn Sie das Kontrollkästchen nicht wollen, zu prüfen, wie Kontrolle durch die Anwesenheit ausgelöst wird ein checked Attribut, nicht sein Wert:

  

Ankreuzfelder (und Radioknöpfe) sind Ein / Aus-Schalter, die durch den Benutzer umgeschaltet werden kann. Ein Schalter „ein“, wenn das Attribut überprüft das Bedienelement gesetzt .

http://www.w3.org/TR/html401/ interagieren / Forms.html # Checkbox

Für mich ist das folgende Markup erzeugt eine Checkbox, die im Internet Explorer, Firefox und Opera aktiviert ist, wie Sie auf der Spezifikation basiert erwarten:

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

Dies wirft ein Licht auf eine interessante Marotte mit Kontrollkästchen. hier einige sehr einfache HTML-i mit wirklich es kam zu summieren richtig:

<html>
<body>

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

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

</body>
</html>

Haben Sie versucht, die genrated HTML von FF und IE zu vergleichen? (Mit "View HTML Source")

Nur das Problem etwas genauer zu lokalisieren. Es ist nur eine geringe Chance, aber wenn die HTML für beide Browser unterschiedlich ist, haben Sie ein Problem auf dem Serverside mit, wie ASP erstellt die HTML.

Wenn beide gleich sind, und voll HTML Beschwerde Sie einen Fehler in FF gefunden haben,

Dies geschieht auch Boxen in FireFox 3 zu wählen, die einen großen Schmerz sein kann, wenn Sie die Box-laufen AJAX / die Seite aktualisieren.

Wenn der Benutzer die Seite aktualisiert oder hat einig Back-Taste Seltsamkeit sie mit dem Auswahlfeld ausgewählt noch am Ende, aber tatsächlich zu un-select und wählen Sie erneut, um die AJAX erneut auszuführen.

In diesem Fall habe ich gefunden, dass der Körper onunload Ereignis mit löschen alle select / Kontrollkästchen „löst“ das „Problem“.

$("input[id$=chkOrder]").click(function() {        
    if (!$(this).attr("checked")) { $(this).removeAttr("checked"); }
    else { $(this).attr("checked", "checked"); }
})
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top