Avatar billede lightbrain Nybegynder
27. juli 2002 - 16:39 Der er 6 kommentarer og
1 løsning

Simpel script-udvidelse

Hej

Jeg har følgende script, som bruges til fortælle brugeren, at han har gentaget indtastningen af sin titel (hvilket man ikke må).

Men nu har jeg lige opdaget, at hvis man sætter nogle mellemrum før og/eller efter titlen, så opdages det ikke, at titlen er gentaget. Hvordan udbygges mit script således, at den også kan håndtere mellemrummene?

<script type='text/javascript'>

function valider (form, noegle) {
     
    var linPos = noegle.length;
    var ptr = form.tekst;

    if ( ptr.value.substr(0,linPos).toLowerCase() == noegle ) {
       
        if ( ptr.value.charAt(linPos) == "\n" || ptr.value.charAt(linPos) == "\r" ) {
            alert ("Titlen findes allerede ovenstående og skal derofr ikke gentages i teksten. Slet den venligst.");
            return false;
        }
    }

    return true;
}

</script>
Avatar billede Slettet bruger
27. juli 2002 - 18:12 #1
function valider(frm, noegle) {
linPos = noegle.length;
ptr = frm.tekst.value;
while (ptr.charAt(0) == " ")
ptr = ptr.substring(1, ptr.length);
while (ptr.charAt(ptr.length - 1) == " ")
ptr = ptr.substring(0, ptr.length - 1);
if (ptr.substring(0, linPos).toLowerCase() == noegle)
if (ptr.value.charAt(linPos) == "\n" || ptr.value.charAt(linPos) == "\r") {
alert("Titlen findes allerede ovenstående og skal derfor ikke gentages i teksten. Slet den venligst.");
return false;
}
return true;
}
Avatar billede lightbrain Nybegynder
27. juli 2002 - 18:32 #2
'prt.value' is null or not an object

_________________________________________________________________

<form method="POST" name="AdminT" action="tekst.asp" onSubmit="return valider(document.AdminT, document.AdminT.titel.value);">
.
.
.
function valider (frm, noegle) {
   
    linPos = noegle.length;
    ptr = frm.tekst.value;

    while (ptr.charAt(0) == " ")
        ptr = ptr.substring(1, ptr.length);
        while (ptr.charAt(ptr.length - 1) == " ")
            ptr = ptr.substring(0, ptr.length - 1);
            if (ptr.substring(0, linPos).toLowerCase() == noegle)
                if (ptr.value.charAt(linPos) == "\n" || ptr.value.charAt(linPos) == "\r") {
                    alert("Titlen findes allerede ovenstående og skal derfor ikke gentages i teksten. Slet den venligst.");
                    return false;
                }
    return true;
}
Avatar billede Slettet bruger
27. juli 2002 - 18:53 #3
Ups, linjen:

if (ptr.value.charAt(linPos) == "\n" || ptr.value.charAt(linPos) == "\r") {

... skal skiftes ud med:

if (ptr.charAt(linPos) == "\n" || ptr.charAt(linPos) == "\r") {
Avatar billede lightbrain Nybegynder
27. juli 2002 - 19:59 #4
Det var bedre :-)
Sætter man et mellemrum før titlen kommer der en alert, men hvis man sætter et mellemrum efter titel, kommer der desværre ikke nogen alert.
Avatar billede Slettet bruger
28. juli 2002 - 11:46 #5
Kan du ikke lige smide et link? Det vil gøre det lettere for mig!
Avatar billede Slettet bruger
28. juli 2002 - 11:58 #6
Nej, nu tror jeg faktisk, jeg har den:

function valider(frm) {
noegle = frm.titel.value;
linPos = noegle.length;
ptr = frm.tekst.value;
while (ptr.charAt(0) == " ")
ptr = ptr.substring(1, ptr.length);
while (ptr.charAt(linPos) == " ")
ptr = ptr.substring(0, linPos) + ptr.substring(linPos + 1, ptr.length);
if (ptr.substring(0, linPos).toLowerCase() == noegle.toLowerCase())
if (ptr.charAt(linPos) == "\n" || ptr.charAt(linPos) == "\r") {
alert("Titlen findes allerede ovenstående og skal derfor ikke gentages i teksten. Slet den venligst.");
frm.tekst.focus();
return false;
}
return true;
}

Kaldes med:

onSubmit="return valider(this);"
Avatar billede lightbrain Nybegynder
28. juli 2002 - 19:34 #7
Takker :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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