Checkbox onclick gör så att checked inte ändras?

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Checkbox onclick gör så att checked inte ändras?

Har en checkbox som jag postar med ajax när man klickar på den. Det lyckas super och allt går som det ska men av nån anledning ändras inte att den är checked. Den är liksom checked både innan och efter man klickar. Nu kör jag med onmouseup vilket gör att den ändras men är ändå inte det jag vill uppnå, och så om man klickar runt lite kan man få den att vara checked utan att servern har uppfattat det.
Den kan liksom checkas utan att ajax-anropet går iväg.
Har skrivit det såhär:

return string.Format("<input type='checkbox' title='{0}s' id='{0}Box' checked='checked' onmouseup=\"Sys.Mvc.AsyncHyperlink.handleClick(document.getElementById('{0}FilterLink'), new Sys.UI.DomEvent(event),{{insertionMode: Sys.Mvc.InsertionMode.replace, loadingElementId: 'AjaxLoader', updateTargetId: 'ContButFilter'}});return true;\"/>{0}s<br />", Name);

Anledningen till att det ser ut som det gör är för att jag har lagt det som en ajaxhelper

Tacksam för svar!

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004

Det står return true i slutet av javascriptraden... prova ta bort det.

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Det var en sak som jag la till när jag testade runt, tog bort det nu men får samma resultat:/

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004

Ok, och du har testat om onclick är stabilare? För att testa kan du sätta ut tre labels med en siffra som du ökar med 1 varje gång man klickar på en checkbox. På så sätt ser du om det är någon av mouseover, out eller click som fungerar bättre/sämre.

Det du får göra annars är att låsa checkboxen medan den frågar servern, alltså sätta this.disabled=true när man klickar på checkboxen och sedan sätta this.disabled=false när servern svarat. På så sätt borde du kunna minska buggrisken.

Ett annat alternativ är att ersätta checkboxen med en egen checkbox (finns färdiga plugins till jQuery), som då är en länkad bild istället för en <input> och därför kan fungera stabilare.