Avatar billede bigo Nybegynder
06. januar 2010 - 20:01 Der er 9 kommentarer og
1 løsning

Ref. til array / input name

Hejsa.

Jeg prøver at lave noget ala:

<input name='FraOktet[$last_octet]' type='radio' value='$octet' onclick='MarkIPs()'>
hvor $last_octet er en værdi (forløbende) fra 0 til 255.

I MarkIPs() prøver jeg følgende:

    for (A = 0; A < document.forms.thing.FraOktet.length; A++)
    {
            if (document.forms.thing.FraOktet[A].checked)
      {
        Fra = parseInt(A, 10);
        break;
      }
    }

men scriptet kan tydeligvis ikke finde FraOktet?

Nogen ide til det?
Avatar billede majbom Novice
06. januar 2010 - 20:18 #1
hedder dine inputs det forventede i den genererede kode?
Avatar billede erikjacobsen Ekspert
06. januar 2010 - 20:24 #2
Et name="a[6]" gør ikke "a" til et array i javascript (men det gør det vist med PHP).

Du kan evt. blot kalde dem "a0", "a1" osv. "a6", og så i en løkke undersøge om de findes, eller på anden måde finde længden.

Generelt anbefales det at navngive den slags ting i javascipt med et id, ikke et name, og så bruge getElementById til at få fat på dem.
Avatar billede bigo Nybegynder
06. januar 2010 - 20:26 #3
<input name='FraOktet[0]' type='radio' value='1500037120' onclick='MarkIPs()'>

osv.. så ja, i View Source ser det rigtigt ud..
Avatar billede majbom Novice
06. januar 2010 - 20:32 #4
det har du da ret i erik - den havde jeg lige overset...

-> #0 - som erik er inde på, ville jeg nok give dem et id, f.eks.
id='octet_$a'
Avatar billede bigo Nybegynder
06. januar 2010 - 20:33 #5
Så hvis jeg kalder dem f.eks. FraOktet0 - 255, hvordan finder jeg dem så og - hvad nu hvis der kun er FraOktet0 - FraOktet144 (f.eks.) Hvordan finder jeg så længden af det?

Jeg kan godt lave det således:
<input name='FraOktet' id='FraOktet$last_octet' type='radio' value='$octet' onclick='MarkIPs()'>
Avatar billede bigo Nybegynder
06. januar 2010 - 20:36 #6
Men så laver den dette:

Message: 'document.forms.getElementById.FraOktet' is null or not an object
Line: 16
Char: 3
Code: 0

Som er         var FraOktet = document.forms.getElementById['FraOktet'];
Avatar billede erikjacobsen Ekspert
06. januar 2010 - 20:42 #7
Så skal du bare teste på den inden du bruger den.
Avatar billede bigo Nybegynder
06. januar 2010 - 20:46 #8
Men fraoktet er jo ikke fraoktet_0 f.eks. (jeps, prøvede lige med _ for overskueligheds...)
Avatar billede bigo Nybegynder
07. januar 2010 - 07:34 #9
var FraOktet = document.getElementsByName('FraOktet');
      var TilOktet = document.getElementsByName('TilOktet');

hvor Fra og TilOktet (bør nok hedde noget andet egentligt) er defineret som: <input name='FraOktet' id='FraOktet$last_octet' type='radio' value='$octet' onclick='MarkIPs()'>

Fandt naturligvis svaret her på Eksperten.dk..

Done ;-)
Avatar billede bigo Nybegynder
12. maj 2010 - 07:54 #10
done
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