/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Mozilla og javascript
Fra : Simon K


Dato : 16-01-06 10:39

Hej

Jeg har lavet et javascript, der skal validere inputs i 2 form felter og
så gemme en sektion, hvis der er match. Scriptet virker fint i IE. Jeg
vil dog også gerne have det til at du i Mozilla - og så skal man jo
overholde visse standarder. Jeg har forsøgt, men kan ikke se, hvorfor
mozilla ikke vil reagere (i det mindste give fejlmedd.) på nedenstående.
På forhånd tak for bud på løsning.

<script type="text/javascript">
function checkif()
{
var nrstr='-37,1-37,2-37,3-36,4-';
var mynr='-'+document.form1.aargang.value+','+document.form1.nr.value+'-';
var is_nr_ok=nrstr.indexOf(mynr);
if (is_nr_ok!=-1)
    {
    document.getElementById('div_rest').style.display = "none";
    }
   else
    document.getElementById('div_rest').style.display = "";
   }
}
</script>

Mvh Simon K

 
 
Simon K (16-01-2006)
Kommentar
Fra : Simon K


Dato : 16-01-06 10:48

Simon K skrev:
>...
> mozilla ikke vil reagere (i det mindste give fejlmedd.) på nedenstående.
> På forhånd tak for bud på løsning.
>...
> else
Den manglende tuborg efter else ER med. Den forsvandt lige da jeg
kopierede ind i posten.
Mvh Simon K

Lasse Reichstein Nie~ (16-01-2006)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 16-01-06 12:00

Simon K <simonmajami@gmail.com> writes:

> Scriptet virker fint i IE. Jeg vil dog også gerne have det til at du
> i Mozilla - og så skal man jo overholde visse standarder.

Jeg håber ikke det er den eneste grund du har til at overhold standarder!
(fx hjælper det også os der hverken bruger IE eller Mozilla).

> <script type="text/javascript">
> function checkif()
> {
> var nrstr='-37,1-37,2-37,3-36,4-';
> var mynr='-'+document.form1.aargang.value+','+document.form1.nr.value+'-';

Her ville jeg anbefale at bruge
document.forms['form1'].elements['aargang'].value
i stedet for den korte form:
document.form1.aargang.value
da det 1) er standard og 2) virker overalt. Den korte form virker også
næsten overalt, men det er en god vane at få under alle omstændigheder.

Din test er opfindsom, men ikke helt sikker nok. Hvis brugeren fx indtaster
-37 og 3, så bliver den også accepteret. Eller hvis han er rigtig ond
og skriver LALALALALALA-37 og 3-GRIMMEORDHER, så vil det også slippe igennem.

Det er bedre at teste på præcist det du vil:

var elems = document.forms['form1'].elements
var aargang = Number(elems['aargang'].value);
var nr = Number(elems['nr'].value);
var ok = (aargang == 37 && (1 <= nr && nr <= 3)) ||
(aargang == 36 && nr == 4);

Det er helt sikkert mere læseligt når du skal pille ved det om et
halvt år.

(Man kan også lave sjove ting med tallene:
var ok = (1 <= nr && nr <= 4) && ((aargang + (nr == 4)) == 37);
men det er igen ikke så læseligt når man kommer tilbage til det senere.
Og det gør man!)

> var is_nr_ok=nrstr.indexOf(mynr);
> if (is_nr_ok!=-1)
>     {
>     document.getElementById('div_rest').style.display = "none";

Her ville det være en fordel med et link til siden, så vi selv kunne
prøve at finde ud af hvad fejlen var. Hvis det fx var fordi der ikke
er et element med id="div_rest" (men fx bare name="div_rest"), så
ville det sikkert give en fejl. Men det er umuligt at gætte på, uden
at se siden.

Jeg kan ikke umiddelbart se noget forkert ved scriptet, så jeg gætter
på at det er samspillet mellem side og script der er problemet.

/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.'

Simon K (16-01-2006)
Kommentar
Fra : Simon K


Dato : 16-01-06 13:57

Lasse Reichstein Nielsen skrev:
> Simon K <simonmajami@gmail.com> writes:
>
>
>>Scriptet virker fint i IE. Jeg vil dog også gerne have det til at du
>>i Mozilla - og så skal man jo overholde visse standarder.
>
>
> Jeg håber ikke det er den eneste grund du har til at overhold standarder!
> (fx hjælper det også os der hverken bruger IE eller Mozilla).
Absolut ikke. Jeg gør det for alle der måtte have gavn af det. Og endda
alene for standardens skyld.

> Her ville jeg anbefale at bruge
> document.forms['form1'].elements['aargang'].value
God idé. Er gjort.

> Din test er opfindsom, men ikke helt sikker nok. Hvis brugeren fx indtaster
> -37 og 3, så bliver den også accepteret. Eller hvis han er rigtig ond
> og skriver LALALALALALA-37 og 3-GRIMMEORDHER, så vil det også slippe igennem.
Jeps. Jeg glemte at skrive at det er SELECT elementer jeg validerer.
Derfor den simple metode.

> Her ville det være en fordel med et link til siden, så vi selv kunne
> prøve at finde ud af hvad fejlen var. Hvis det fx var fordi der ikke
> er et element med id="div_rest" (men fx bare name="div_rest"), så
> ville det sikkert give en fejl. Men det er umuligt at gætte på, uden
> at se siden.
Jeg ville gerne linke. Men det er en backend access
dataindtastningsside. Den er ikke færdig og den er ikke på www.

Jeg har dog lige lavet en destilleret side - og der virker det "#¤"#¤
så jeg må jo lige trawle den selv, når jeg ikke kan linke.

Tak for hjælpen.

Mvh Simon k

Søg
Reklame
Statistik
Spørgsmål : 177553
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste