Hoi allen,
ik heb op mijn webapplicatie een formulier met daarop wat invoer velden, een customvalidator en een knop verzenden.
Hoe simpel kan het zijn.
Helaas ook een hoop gebruikers die niet snappen hoe je met een formulier omgaat en denken dat je moet dubbelklikken op de knop. Dit gebeurt dus ook veelal en daardoor wordt de validatie 2x (of vaker als ze de knop blijven indrukken) aangeroepen.
In de customvalidator doe ik een null check op een sessie variabele. Het gekke is, is dat in Internet Explorer 8 na de 2e klik de sessie variabele leeg is, waardoor mijn validator false terug geeft.
In IE9, Chrome en FF blijft de variabele keurig gevuld.
Iemand een idee waar dit aan kan liggen?
De validatie is als volgt, waarbij het object _OrderHead de sessie variabele is. Dit object is dus null in IE8 de tweede keer dat hij in de validator komt.
---edit: opgelost---
in de OnClientClick van de knop werd een javascript functie aangeroepen die dit deed:
opgelost door middel van:
Reden dat deze regel code erin zit, is dat de gebruikers soms heel snel achter elkaar op verschillende knoppen klikken (don't ask why!). Met deze regel schakel je de andere knoppen uit, zodat ze dat niet meer kunnen.
ik heb op mijn webapplicatie een formulier met daarop wat invoer velden, een customvalidator en een knop verzenden.
Hoe simpel kan het zijn.
Helaas ook een hoop gebruikers die niet snappen hoe je met een formulier omgaat en denken dat je moet dubbelklikken op de knop. Dit gebeurt dus ook veelal en daardoor wordt de validatie 2x (of vaker als ze de knop blijven indrukken) aangeroepen.
In de customvalidator doe ik een null check op een sessie variabele. Het gekke is, is dat in Internet Explorer 8 na de 2e klik de sessie variabele leeg is, waardoor mijn validator false terug geeft.
In IE9, Chrome en FF blijft de variabele keurig gevuld.
Iemand een idee waar dit aan kan liggen?
De validatie is als volgt, waarbij het object _OrderHead de sessie variabele is. Dit object is dus null in IE8 de tweede keer dat hij in de validator komt.
C#:
1
2
3
4
5
| e.IsValid = false; if (_OrderHead != null) { e.IsValid = (_OrderHead.OrderItems.Where(oi => !oi.Deleted).Count() > 0) } |
---edit: opgelost---
in de OnClientClick van de knop werd een javascript functie aangeroepen die dit deed:
JavaScript:
1
| $(':button,:submit').attr('disabled', 'disabled'); //disable all buttons and submits |
opgelost door middel van:
JavaScript:
1
| $(':button,:submit').not('#<%=btnSaveOrder.ClientID %>').attr('disabled', 'disabled'); //disable all buttons and submits |
Reden dat deze regel code erin zit, is dat de gebruikers soms heel snel achter elkaar op verschillende knoppen klikken (don't ask why!). Met deze regel schakel je de andere knoppen uit, zodat ze dat niet meer kunnen.
[ Voor 22% gewijzigd door PdeBie op 24-05-2012 11:04 . Reden: oplossing toegevoegd. ]