Avatar billede abband Nybegynder
05. november 2010 - 01:09 Der er 6 kommentarer og
1 løsning

OnClick og validering i IE og FF

Hej eksperter,

Er der en venlig sjæl, som kan forklare mig, hvordan jeg får nedenstående til at validere formen i både IE og FF. I skrivende stund virker den kun i FF - når den køres via IE, ignorerer den bare valideringen.


<script type="text/JavaScript">
function addnewalbum() {
    if (albumnew.value=="") {
        alert("Angiv venligst en albumtitel");
        albumnew.focus();
    return false;
    }
      return true;
}
</script>

<form id='frm2' method='post' action='savephoto.asp'><input name='albumnew' id='albumnew' type='text' size='52' class='text'/><button type='submit' value='Opret' class='btn' title='Opret album' onClick='return(addnewalbum())'>Opret</button></form>
Avatar billede bkp Nybegynder
05. november 2010 - 07:20 #1
Hvis du debugger med Fiddler eller med IE's indbyggede Udviklerværktøj, vil du se at albumnew ikke er defineret.
Vi må erkende at browsere opfører sig forskelligt, og det er en af grundende til at jeg altid bruger jQuery, den tager hånd om de særheder som de forskellige browsere har.
Så hvis du inkluderer jQuery så kunne du gøre således - og det virker:
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
    <script type="text/JavaScript">
        function addnewalbum() {
            if ($('#albumnew').val()=='') {
                alert('Angiv venligst en albumtitel');
                $('#albumnew').focus();
                return false;
            } return true;
        }
    </script>
</head>
<body>
<form id='frm2' method='post' action='#'>
<input name='albumnew' id='albumnew' type='text' size='52' class='text'/>
<button type='submit' value='Opret' class='btn' title='Opret album' onClick='return(addnewalbum())'>Opret</button>
</form>
</body>
</html>
Avatar billede abband Nybegynder
05. november 2010 - 08:53 #2
Tak for hjælpen, det virker jo fremragende og lige efter hensigten.
Avatar billede bkp Nybegynder
05. november 2010 - 09:00 #3
Ja, jo mere man bruger jQuery jo mere finder man ud hvor stærkt det er, jeg bruger det som standard selv til små ting, for så er man mere sikker på at det virker (det er min mening).
Avatar billede majbom Novice
05. november 2010 - 09:03 #4
det har jo ikke noget at gøre med at browserne er mærkelige, det er simpelthen fordi koden i #0 ikke er korrekt :)

hvordan skal den vide hvad 'albumnew' er?
Avatar billede bkp Nybegynder
05. november 2010 - 09:15 #5
splazz > Delvist enig, jeg har ikke sagt at IE opfører sig mærkeligt jeg sagde bare at browsere har forskellige måde at gøre tingene på, men hvorfor tillader Firefox så at kalder din input uden at angive hvilken form den ligger i? Kunne det være fordi det er smart :-)

IE forventer at du angiver hvilken form din input ligger i og det er selvfølgelig fair nok, men når nu der kun findes denne ene id, hvorfor er det så ikke tilladt at skrive mere enkel kode.

Alt det hjælper jQuery dig med, den håndterer det for dig, det syntes jeg er virkelig sejt, og er en gave til os udviklere.
Avatar billede majbom Novice
05. november 2010 - 09:30 #6
man kunne jo nøjes med bare et rette disse to linjer i hans script:


<script type="text/JavaScript">
function addnewalbum() {
    if (document.getElementById('albumnew').value=="") {
        alert("Angiv venligst en albumtitel");
        document.getElementById('albumnew').focus();
    return false;
    }
      return true;
}
</script>


i stedet for at inkludere alt det kode fra google :)
Avatar billede bkp Nybegynder
05. november 2010 - 10:06 #7
Enig det er en løsning, men jeg vil gerne lige fjerne en misforståelse:

jQuery er brugt på "næsten" alle hjemmesider, så det bibliotek ligger allerede på brugernes pc, og bliver derfor ikke hentet med mindre det er nødvendigt. :-)

Jeg kan kun anbefale at kigge nærmere på hvad jQuery kan, det fylder ikke væsentlig meget, men det performer bedre end meget af det kode man selv laver fordi det i den seneste version har en langt hurtigere tilgang til dom træet end meget af det kode man selv skriver.

F.eks. så har jQuery optimeret deres closest('#id') så den nu performer væsentlig bedre end før, se bare grafen her:
http://farm5.static.flickr.com/4087/5078514579_47c2b1fe5c.jpg

Kilde: http://blog.jquery.com/2010/10/16/jquery-143-released/
Dansk udgave: http://bkristensen.tumblr.com/post/1358617651/jquery-1-4-3-frigivet
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