"Adam Ellesøe" <adam_ellesoe@hotmail.com> writes:
> Jeg kan ikke få dette til at virke i FF.. (er ikke så habil i js, så..)
>
http://www.odontpoker.dk/
Du mangler at fortælle os hvad det er koden skal gøre. :)
> Koden det handler om:
> <script language="javascript" type="text/javascript">
Drop "language"-attributten. "type" er tilstrækkeligt.
> <!--
Dop HTML-kommentarer.
> var IE4 = (document.all) ? 1 : 0;
> if (IE4)
> var timerID = setInterval("enableSubmit()", 200);
Det her ligner en god kandidat ... noget der kun sker i IE (version
4?). Det tyder også på at koden er så gammel at den bør revideres,
når den henviser til IE4 ved navn.
Generelt er det ikke et godt tegn at forsøge at finde browserens navn
og version. Det er ikke altid muligt, og det er sjældent den bedste
måde at gøre noget på alligevel.
Så, fjern "if (IE4)" fra ovenstående, så det sker i alle browsere.
> function enableSubmit() {
> if (!IE4) return;
Den linje skal nok også væk.
> var form = document.maillisteform;
Her anbefales den standardiserede måde at tilgå en form på:
var form = document.forms['maillisteform'];
> var currentState = form.submitmailgem.disabled;
Og elementer:
var currentState = form.elements['submitmailgem'].disabled;
> var newState = !isEmail(form.mailliste.value);
var newState = !isEmail(form.elements['mailliste'].value;
> if (newState != currentState)
> form.submitmailgem.disabled = newState;
Alt det arbejde for at undgå at sætte en værdi til det samme som den
er. Hele metoden kunne være skrevet:
function enableSubmit() {
var form = document.maillisteform;
var newState = !isEmail(form.mailliste.value);
form.submitmailgem.disabled = newState;
}
> function isEmail(str) {
> // are regular expressions supported?
Et kan man godt løbe an på i vore dage. Igen et tegn på et meget
gammel script.
[klip noget regexp der tror det genkender gydlige e-mail-adresser]
Det er ikke så trivielt endda at genkende gyldige e-mail-adresser,
og ens brugere bliver så sure når man ikke accepterer den adresse
de giver ... og som faktisk er god nok. Jeg vil anbefale et tjek
for et format så simpelt som:
???? @ ???? . ??
Det kan gøres uden RegExp'er, så selv de paraniode ikke behøver
tjekke for om de er understøttede:
function isEmail(str) {
var i = str.indexOf("@");
var j = str.indexOf(".",i+1);
return i > 0 && j > i+1 && j < str.length - 2;
}
> //-->
HTML-kommentarer skal ud :)
Held og lykke.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'