[JS] gegevens uit een popup aanroepen in subfunctie

Pagina: 1
Acties:

  • Freakertje
  • Registratie: Januari 2002
  • Laatst online: 13:58

Freakertje

PC schopt kont, ik nog niet...

Topicstarter
Ik ben nog niet te lang bezig met JavaScript, maar ben zelf al een behoorlijk eind gekomen met de literatuur en GoT natuurlijk ;)

Maar nu stuit ik op iets dat ik niet kan bevatten of het kan gewoon niet, dat wil ik hier graag te weten komen.

Ik heb in een popup door een gebruiker gegevens laten invoeren. Deze laat ik controleren door een functie in het hoofdvenster. Hiervoor gebruik ik "opener.functie(this.form)"

Nu wil ik er nog een ander controle inhangen, maar voor de leesbaarheid wil ik die controle in een aparte functie zetten en deze functie aanroepen vanuit de 1e functie. Mijn vraag is nu dus hoe krijg ik de gegevens naar die subfunctie? Is dit überhaupt wel mogelijk?

Hier een gedeelte van de code in de volgorde die ik nu ook heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function invoercontrole(form){
    
    if (form.anaam.value == null || form.anaam.value == ''){
        myWin.window.alert('Uw achternaam is niet ingevuld!');
        form.anaam.focus();
    }
    else{
        anaamcontrole(form); 
                 // Hieronder hangt nog veel meer.......
        }
}

function anaamcontrole(form){
    
    if (form.anaam.value.lenght < 3 || form.anaam.value.lenght > 50){
        alert('Ongeldige naam!')
    }
}


stringStudGeg += '<td><input type="button" value="Akkoord"
 onClick="opener.invoercontrole(this.form)"></td>';

myWin = window.open('', 'Studentgegevens', 'width=500,height=400,
toolbar=no,scrollbars=no,menubar=no,status=yes');
    myWin.document.write(stringStudGeg);


Het zit hem duidelijk in de parameters die ik doorgeef naar de subfunctie, want de 1e functie werkt prima.

Wat gaat er fout? De subfunctie wordt niet uitgevoerd lijkt het. Er wordt gewoon verder gegaan met de volgende statements in de 1e functie. De browser geeft ook geen foutmeldinkje in de statusbalk.

Het gaat me dus in eerste instantie om of het kan, anders los ik het wel op de niet nette manier op, bijv. met een tweede functieaanroep achter de "onClick"

[ Voor 42% gewijzigd door Freakertje op 13-08-2003 21:24 ]

Ik ga een aantal zaken even helemaal anders doen!
Totale Modjesgekte


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Dit zou geen probleem moeten zijn, dus denk dat je je gehele code beetje moet debuggen. 'form' bijvoorbeeld is al een gereserveerde naam in javascript, neem daar wat anders voor.

Verder snap ik niet waarom je de functies die je nodig hebt niet gewoon in de popup include, dat scheelt je een hoop gedoe.

[ Voor 18% gewijzigd door Bosmonster op 14-08-2003 09:32 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:29

crisp

Devver

Pixelated

Bosmonster schreef op 14 August 2003 @ 09:31:
Dit zou geen probleem moeten zijn, dus denk dat je je gehele code beetje moet debuggen. 'form' bijvoorbeeld is al een gereserveerde naam in javascript, neem daar wat anders voor.
'form' is voor zover ik weet helemaal geen reserved word. Ik kan me wel voorstellen dat je met 'forms' in de problemen komt aangezien die property is van het document object (forms-collectie).
Verder snap ik niet waarom je de functies die je nodig hebt niet gewoon in de popup include, dat scheelt je een hoop gedoe.
Mee eens, gewoon in een los JS bestandje zetten en includen.

Ik denk trouwens dat het 'm in de alert zit; in je main functie alert je expliciet naar je popup, in je andere functie niet. Op zich zou het geen probleem moeten zijn object references door te spelen naar andere functies.

Intentionally left blank


  • Freakertje
  • Registratie: Januari 2002
  • Laatst online: 13:58

Freakertje

PC schopt kont, ik nog niet...

Topicstarter
Ik kan wel zeggen dat het iig niet in de alert zit, aangezien die in deze toestand gewoon op de hoofdpagina gegeven wordt, en dat wordt ie dus niet.
Voor de zekerheid heb ik dat nog aangepast, omdat dat uiteindelijk toch wel moet, maar dat maakte idd niks uit. Ook de ; die ik vergeten was deed niks.

Dat ik niet de boel in een apart bestand zet en include heeft te maken dat ik slechts een basiscursus doe waarin dit niet beschreven wordt. Ik kende het begrip dus nog niet ;) Ik ben allang blij dat ik in een paar weken zover gekomen ben dat me dit allemaal lukt en ik het net enigzins begin te begrijpen hoe alles in elkaar steekt.

* Freakertje zet es een googletje op naar includen in gaat zich es inlezen...

P.s.: gereserveerde woordenlijst: form.... staat niet op de kaart, evenmin als forms :)

[ Voor 7% gewijzigd door Freakertje op 14-08-2003 13:24 ]

Ik ga een aantal zaken even helemaal anders doen!
Totale Modjesgekte


  • Freakertje
  • Registratie: Januari 2002
  • Laatst online: 13:58

Freakertje

PC schopt kont, ik nog niet...

Topicstarter
Hahahaha, Bosmonster had uiteindelijk toch gelijk! :D

Ik had value.lenght i.p.v. value.length

Nu werkt het wel :)

Hoe heb ik dit opgelost? Ik ben nu nagegaan waar het precies op vastliep. Ik zag dat de gegevens wel werden doorgegeven, omdat ik geen foutmelding had van dat het object of onbekend of leeg was, terwijl ik die wel kreeg als ik de parameters aanpaste. Dus het moest wel haast fout gaan in de beoordeling van het statement want die zou dan altijd false geven. En jawel :)

Wat hebben we nu weer geleerd? Slaap er eerst eens een nachtje over en kijk er dan met frisse moed tegenaan :)

Mensen, bedankt voor de hulp, ik heb iig weer wat geleerd hoe het in elkaar steekt, en ik zal zeker nog een keer naar dat includen kijken. :>

[ Voor 33% gewijzigd door Freakertje op 14-08-2003 13:39 ]

Ik ga een aantal zaken even helemaal anders doen!
Totale Modjesgekte


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:29

crisp

Devver

Pixelated

Tip: zet notificatie van script fouten aan in je IE en/of gebruik Mozilla en kijk af en toe eens in het javascript console; dan haal je dit soort fouten er zo uit. Mozilla had je sowieso een warning gegeven dat lenght geen bestaande property is.

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Of gebruik een editor met syntax highlighting.. daarin zie je dit soort dingen ook direct. Ben je het 'debuggen' nog een stapje voor ;)

[ Voor 20% gewijzigd door Bosmonster op 14-08-2003 14:33 ]


  • Freakertje
  • Registratie: Januari 2002
  • Laatst online: 13:58

Freakertje

PC schopt kont, ik nog niet...

Topicstarter
Das wel waar ja, maar maak ik het mezelf dan niet te makkelijk? (Goh, das fout, ff verbeteren. )
Nu moest ik alles nagaan om er achter te komen waar het precies op foutliep, en volgens mij heb ik daar meer van geleerd dan dat ik een debugger gebruik. (Ik heb ook een paar weken C++ met debugger geprobeerd te leren, dus ik weet waar ik over praat ;))

Het gaat me er nu vooral om dat ik alles goed leer en niet dat ik ff iets afkrijg ;)

Ik ga een aantal zaken even helemaal anders doen!
Totale Modjesgekte


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Tja.. als je het corrigeren van typfouten als onderdeel van je leerproces ziet :P Ik vind het persoonlijk tijdsverspilling..

  • Freakertje
  • Registratie: Januari 2002
  • Laatst online: 13:58

Freakertje

PC schopt kont, ik nog niet...

Topicstarter
Tis niet alleen ff een typfout doornemen, tis ook het hele proces doornemen, en gelijk kijken of je begrijpt hoe het in elkaar steekt en wat er nou wel goed gaat en wat niet :)

Ik ga een aantal zaken even helemaal anders doen!
Totale Modjesgekte

Pagina: 1