Avatar billede bigo Nybegynder
27. marts 2003 - 16:48 Der er 2 kommentarer og
1 løsning

"er du nu sikker på dette" virker ikke

Hejsa.

Jeg har et lille problem med en form hvor jeg checker på om man ændrer noget i et felt.

f.eks. står der i inputfeltet tallet 1023.
Hvis man ændrer det skal der forespørges : er du nu sikker på at du vil ændre dette.
Hvis man siger ok, skal den fortsætte med at checke det indtastede for at være et tal eller være en del af et array.
Men hvis man siger nej/annuller så skal den stoppe og "restaurere" den originale værdi (det som stod der inden man prøvede og rette i værdien.

Koden jeg viser nedenfor gør dette. Men det den ikke gør er at sætte den originale værdi hvis man trykker annuller.

Kode:

function ValidatePort(Element)
  {

    var services = new Array('DNS', 'HTTP', 'HTTPS', 'SMTP', 'POP3', 'FTP', 'TELNET', 'SSH', 'NTTP', 'IKE', 'MS-SQL', 'MYSQL');
      if (Element.value)
      {
        if (!confirm('Er du sikker p\345, at du vil \346ndre dette. Det er ikke normalt?'))
        {
          return false;
        }
        else
        {
          if(isNaN(parseInt(Element.value)))
          {
            found = false; count = 0;
            while (!found&&(services.length!=count))
            {
              found=(Element.value.toUpperCase() == services[count]);
              count++;
            }
            if (found)
            {
              Element.style.backgroundColor = 'white';
              Element.title = 'Service er ok';
              return (true);
            } else {
              alert('Dette er IKKE en kendt service. F\370lgende Services er kendte: \n' + services.join("\n") + '\neller portnummer
angivet i tal (f.eks. 53 for DNS)');
              Element.style.backgroundColor = 'red';
              Element.title = 'Service ukendt.';
              Element.select();
              Element.focus();
            }
          }
          else
          {
            Element.style.backgroundColor = 'white';
            Element.title = 'Service er ok';
            return (true);
          }
        }
      }
  }
Avatar billede Slettet bruger
27. marts 2003 - 16:57 #1
Må vi se hele koden?
Avatar billede mortrr Praktikant
27. marts 2003 - 17:08 #2
At returnere false på en onchange vil ikke sætte værdien tilbage til den originale. Det skal du selv holde styr på.

Fx med noget lignende:
<input onfocus="portValue=this.value" onchange="return ValidatePort(this)" type="text name="Port">

      if (!confirm('Er du sikker p\345, at du vil \346ndre dette. Det er ikke normalt?'))
        {
          Element.value=portValue;
          return false;
Avatar billede bigo Nybegynder
27. marts 2003 - 19:25 #3
Takker .. Det virker sørme...
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