29. februar 2004 - 08:12Der er
21 kommentarer og 1 løsning
Disable submit-knappen i forbindelse med validering
Jeg har en formular, hvor jeg har noget JavaScript validering der fungerer fint. Nu vil jeg gerne have det således, at min submit-kanp ('send') er disabled="didabled" fra starten af og kun bliver aktiveret i det øjeblik begge felter ('name' og 'postnummer') valideres korrekt (afhakket med grønt).
Jeg har forsøgt mig med et system roenving har udviklet, men jeg kan ikke få det til at fungere:
Du skal have en onsubmitevent på formen, eks. onsubmit="return checkthis(this);"
dit script skal så være noget ala:
function checkthis(f) { f.send.disabled=true;
//Tjek alle dine felter her if ( alt OK ) return true; else return false; }
håber du kan se princippet. Jeg har ikke rigtigt kigget så meget på din oprindelige kode, men kan se at du validerer det så snart at felter er skrevet. Der skal i hvert fald også tjekkes når onsubmit.
Nej, jeg tror ikke onsubmit virker i dette tilfælde. Så tjekkes der jo først når der trykkes på submit og fidusen er jo, at man slet ikke skal kunne trykke på submit-knappen så længe felterne ikke er valideret.
ok jeg kan godt se hvad du mener nu. Det første er selvfølgelig at sætte send knappen til disabled inden formen begynder at blive brugt, ellers kan man submitte uden at have udfyldt noget.
det gøres med at sætte dette i bunden af dit dokument
roenving>> Får mig at se virker det ikke med det array - det ser ud til at først sætter man fields[0] = "postnummer" så sætter man fields[0] = false
Hvis man prøver og lave alert(fields[0]); før og efter for-løkken vil den først være postnummer så false.
alert(fields['postnummer']); er bare undefined.
Er jeg helt galt på den eller? Jeg har i hvert fald lige kigget på scriptet, men kunne ikke få ok = true - selv om begge billeder indikerede rigtigt indtastet. :-)
Du bruger: var fields = {'postnummer':false;'fornavn':false}; det skal være: var fields = {'postnummer':false,'fornavn':false};
altså komma der adskiller dem og ikke semikolon.
Derudover har du en enkelt fejl ved din form <form action"/formtest2.php" method="get" enctype="application/x-www-form-urlencoded" > skal være <form action="/formtest2.php" method="get" enctype="application/x-www-form-urlencoded" >
Disablingen af knappen bliver jo aktiveret ved afsendelse, så der må noget onload til, enten til at disable, når de ikke er udfyldt, eller til at enable, når de er udfyldt, men det klarer du nemmest i dit php-script, for så sætter du bare disabled ind i submit-knappen efter behov !-)
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.