Det er lidt svært at se, hvad det er, du gerne vil opnå, men generelt kan man sige, at JavaScript-funktioner kan du bruge, når siden ligger i browseren. PHP-funktioner kan du derimod kun bruge på serveren. Når dokumentet har forladt serveren, kan du ikke længere afvikle PHP.
Jeg ønsker at forenkle min kode så jeg ikke har 25 forms med hver sin fom valider, er det muligt at ligge den i en include fil eller lign. således at der er mange forms men kun en fom valider?
Det kunne du for den sags skyld godt - men der er en ting, jeg ikke rigtig forstår: Hvorfor vil du definere fomnavnet, når du i JS-funktionen øjensynligt får formen medsendt som argument? Er du overhovedet sikker på, det giver dig nogen besparelse at lave en PHP-funktion til at skrive JS-funktionen med? På hver side, hvor den skal bruges, skal PHP-funktionen jo så kaldes med hvert formfelts navn med tilhørende besked og validerings-betingelser. Jeg formoder, du ikke bare checker om feltet er udfyldt, men om en e-mail er valid, en dato er rigtig formateret, et telefonnummer består af tal, osv. På mig virker det lidt som overkill :) /mvh
Måske noget sådant, som her har mail- og beløbs-check med, men det kan jo fjernes !-)
<script language="javascript" type="text/javascript"> function checkForm(f){ var txt = "",fjl; var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ"; var regexp = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2,}$","i"); var regcurr = /^([\-\+]?[1-9]\d{0,2}((\.\d{3})*|\d*)(\,\d{2})?)?$/; for(i=0;f.elements.length>i;i++){ fld = f.elements[i] if ((fld.tagName=='TEXTAREA'||fld.type=="text")&&fld.value==fld.defaultValue){ txt+="\n\t"+fld.name; if(!fjl)fjl = fld; }else if (fld.name.toLowerCase().indexOf("mail")>-1){ if (!regexp.test(fld.value))txt+="\n\t"+fld.name+" -- ikke korrekt mail-adresse-format"; if(!fjl)fjl = fld; }else if (fld.name.toLowerCase().indexOf("curr")>-1){ if (!regcurr.test(fld.value))txt+="\n\t"+fld.name+" -- beløb skal angives i et korrekt format"; if(!fjl)fjl = fld; } } if(txt!=""){ txt = "Du mangler at udfylde disse felter:\n"+txt+"\n\nAlle felter skal udfyldes"; alert(txt); fjl.select(); fjl.focus() return false; } return true; } </script>
-- den arbejder iøvrigt også med defaultValue, så den er ikke beregnet til forms, hvor værdier kan være forud udfyldt, men det er så kun defaultValue, som skal udskiftes med "" ...
Synes godt om
Ny brugerNybegynder
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.