Avatar billede hlt Juniormester
10. november 2008 - 15:47 Der er 16 kommentarer og
1 løsning

Submit validering

Hej,
Jeg har brug for at finde en løsning på et lille submit problem jeg sidder med.
jeg har en side med en brugeroprettelse. På denne side skal man afkrydse at man har læst og accepteret de betingelser der nu er for brugen af sitet. Og det virker fint nok. På samme side har jeg tilføjet en knap hvor man kan kontrollere om et brugernavn allerede er brugt, og få alternativer til det ønskede brugernavn hvis det man havde forsøgt med er taget. Det skal man selvfølgelig kunne kontrollere inden man forsøger at oprette sig på sitet. Men nu er problemet at man får denne javascript alert med at "man skal huske at afkrydse at man har læst leveringsbetingelserne" hver gang man trykker på den ene eller den anden knap. Men det check vil jeg gerne fjerne hvis det er den ene knap, men ikke hvis det er den "rigtige" submit knap.
Er der nogen der har en ide til hvordan man kan fikse dette problem.
Avatar billede jokkejensen Novice
10. november 2008 - 15:54 #1
brug validationgroup="" og grupper dem så som du ønsker, knapperne har samme egenskab, og en knap validere kun inden for samme gruppe.

/J
Avatar billede jokkejensen Novice
10. november 2008 - 15:55 #2
der er også causesvalidation="false", hvis de andre knapper sletikke skal validere.
Avatar billede hlt Juniormester
10. november 2008 - 17:22 #3
Jeg kan ikke få det til at virke. Den kommer stadig med alert'en.
Jeg har gjort det at selve javascriptet er tilføjet med page load og
ClientScript.RegisterOnSubmitStatement(Me.GetType(), "OnSubmit", "if(document.getElementById('salesCheckBox')){if(document.getElementById('salesCheckBox').checked== false){alert('Du skal godkende betingelserne');document.getElementById('missingSalesField').style.display = 'block';  return false; }}")

Er der en anden måde at lave det check på?
Avatar billede w13 Novice
10. november 2008 - 17:25 #4
Prøv lige at rette det til:

ClientScript.RegisterOnSubmitStatement(Me.GetType(), "OnSubmit", "if(!document.getElementById('salesCheckBox').checked){alert('Du skal godkende betingelserne');document.getElementById('missingSalesField').style.display = 'block';return false}")

Det gør det lidt simplere.

Ellers må vi prøve at alerte værdien af .checked.
Avatar billede hlt Juniormester
10. november 2008 - 17:53 #5
Ok, det har jeg gjort nu. det giver dog samme resultat.
Avatar billede w13 Novice
10. november 2008 - 17:57 #6
Så må vi jo debugge. Hvad skriver den i alerten, hvis vi bruger:

ClientScript.RegisterOnSubmitStatement(Me.GetType(), "OnSubmit", "alert(document.getElementById('salesCheckBox').checked);return false}")
Avatar billede w13 Novice
10. november 2008 - 17:57 #7
Hov, sådan her:

ClientScript.RegisterOnSubmitStatement(Me.GetType(), "OnSubmit", "alert(document.getElementById('salesCheckBox').checked);return false")
Avatar billede hlt Juniormester
10. november 2008 - 17:58 #8
men problemet er vel at alle knapper i princippet fungerer som submit knapper. Kan man ikke teste på hvilken knap der er trykket på?
Avatar billede w13 Novice
10. november 2008 - 17:59 #9
Hvad siger den, hvis du bruger den kode? :)
Avatar billede w13 Novice
10. november 2008 - 18:01 #10
Og jeg skal ikke kunne sige, om alle dine knapper submitter formen, men det burde vel ikke ændre på, om den kan finde ud af at aflæse salesCheckBox's checked-værdi.
Avatar billede hlt Juniormester
10. november 2008 - 18:01 #11
den alerter også det rigtige. Men det virker sådan set også efter hensigten. Problemet er at den helst ikke skal validerer checkboksen, når jeg kontrollerer brugernavnet.
Avatar billede w13 Novice
10. november 2008 - 18:03 #12
Ok, hvis du vil have det gjort, når man kun har trykket på den ene knap, så skal dette rettes:

ClientScript.RegisterOnSubmitStatement(Me.GetType(), "OnSubmit", "if(!document.getElementById('salesCheckBox').checked){alert('Du skal godkende betingelserne');document.getElementById('missingSalesField').style.display = 'block';return false}")

så det lægges på knappen og ikke formen og OnSubmit skal være OnClick i stedet.
Avatar billede hlt Juniormester
10. november 2008 - 19:38 #13
Ok, nu tror jeg at jeg fik løst det. istedet for at lave en clientscript på formen eller knappen, lavede jeg en:
nextButton.Attributes.Add("onclick", "if(document.getElementById('salesCheckBox')){if(document.getElementById('salesCheckBox').checked== false){alert('Du skal godkende betingelserne');document.getElementById('missingSalesField').style.display = 'block';  return false; }}")

På page load
Og så virker det. Smider du et svar. Du fik mig ind på rette spor.
Avatar billede w13 Novice
10. november 2008 - 19:56 #14
;)
Avatar billede w13 Novice
10. november 2008 - 19:57 #15
Men vil stadig mene, du kan nøjes med:

nextButton.Attributes.Add("onclick", "if(!document.getElementById('salesCheckBox').checked){ alert('Du skal godkende betingelserne'); document.getElementById('missingSalesField').style.display = 'block'; return false }")
Avatar billede hlt Juniormester
11. november 2008 - 10:32 #16
Du har ret i at den kode du har sendt er bedre. Den jeg selv havde sat op, er dels rester fra noget gammel kode, og dels et forsøg på at finde ud af hvad pokker der gik galt.
Men tak for hjælpen.
Avatar billede w13 Novice
11. november 2008 - 10:33 #17
Tak for points! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester