[JS/HTML]extern .js bestand functie aanroep geeft error

Pagina: 1
Acties:
  • 132 views sinds 30-01-2008
  • Reageer

  • mr._Anderson
  • Registratie: Februari 2000
  • Niet online

mr._Anderson

[Een man is nog geen Tweaker]

Topicstarter
Reacties niet meer nodig, het is opgelost

Ik heb om te beginnen al gezocht op GoT en Google, ik kan genoeg vinden over hoe het zou moeten werken, maar het werkt gewoon niet bij mij :)

Ik heb een JS functie (later nog meerdere) die ik in een extern bestand wil zetten.

Via:
code:
1
<script src="/script/externBestand.js" language="JavaScript" type="text/javascript"></script>


roep ik het extern bestand aan, wat in een submap script staat.

Voor de voorbeelden,
selectComponent, forumuliernaam en tekstvak/tekstvak2 heb ik voor de duidelijkheid even als algemene namen aangemaakt, die zijn anders in mijn code.
Verder heeft de functie gewoon gewerkt toen hij nog in het bestand zelf stond.

In een select HTML component roep ik als volgt de functie aan:
code:
1
<select name="selectComponent" onChange="javascript:setModel()">


En hieronder de inhoud van mijn JS bestand:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function setModel()
{
    if(document.formulierNaam.selectComponent.options[document.formulierNaam.selectComponent.selectedIndex].text == "Models")
    {
        document.formulierNaam.tekstvak.value = "";
        alert("Error");
    }
    else
    {
        document.formulierNaam.tekstvak.value = document.formulierNaam.selectComponent.value;
        document.formulierNaam.tekstvak2.focus();
    }
}


Wat zou hier nu fout aan kunnen zijn?

[ Voor 25% gewijzigd door mr._Anderson op 12-01-2004 08:26 ]

-=[Een wijs man zei eens: als een tweaker heb ik zo mijn TCP-IP connecties. Deze uitspraak staat tot op de dag van vandaag © mr._Anderson]=-=[ AMD64 overclock en registratie site: AMDGeeks.net


  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 27-05 09:48
Geen ID,

Ik zou FireBird downloaden als ik jouw was, te vinden op mozilla.org
Download nou niet mozilla zelf maar FireBird, staat er ergens tussen.

Waarom? Het heeft een JavaScript debug console (onder plugins).

Wat waarschijnlijk fout is aan je script, is dat je "javascript:setModel()" gebruikt ipv gewoon de functie alleen aanroept.

Suc6

[ Voor 6% gewijzigd door LinuX-TUX op 11-01-2004 20:24 . Reden: Directer linkje ]


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Laat me raden: formulierNaam en tekstvak2 staan ook exact zo in je externe bestand? En anders: gebruik inderdaad de JavaScript-console van Firebird, een genot om mee te debuggen.

  • mr._Anderson
  • Registratie: Februari 2000
  • Niet online

mr._Anderson

[Een man is nog geen Tweaker]

Topicstarter
LinuX-TUX schreef op 11 januari 2004 @ 20:23:
Geen ID,

Ik zou FireBird downloaden als ik jouw was, te vinden op mozilla.org
Download nou niet mozilla zelf maar FireBird, staat er ergens tussen.

Waarom? Het heeft een JavaScript debug console (onder plugins).

Wat waarschijnlijk fout is aan je script, is dat je "javascript:setModel()" gebruikt ipv gewoon de functie alleen aanroept.

Suc6
Ik zal eens kijken naar Firebird, met setModel() alleen werkt het ook niet :(

-=[Een wijs man zei eens: als een tweaker heb ik zo mijn TCP-IP connecties. Deze uitspraak staat tot op de dag van vandaag © mr._Anderson]=-=[ AMD64 overclock en registratie site: AMDGeeks.net


  • mr._Anderson
  • Registratie: Februari 2000
  • Niet online

mr._Anderson

[Een man is nog geen Tweaker]

Topicstarter
creative8500 schreef op 11 januari 2004 @ 20:30:
Laat me raden: formulierNaam en tekstvak2 staan ook exact zo in je externe bestand? En anders: gebruik inderdaad de JavaScript-console van Firebird, een genot om mee te debuggen.
namen heb ik even voor de algemeenheid veranderd,
maar het werkt eerst, want ik had namelijk de functie gewoon eerst in de html bestand zelf gezet.
dat overgekopieerd naar een extern .js file, de verwijzing erin, en toen deed hij het niet meer...

update: kan firebird nu ff niet downen :( broer heeft clan war :(

[ Voor 6% gewijzigd door mr._Anderson op 11-01-2004 20:38 ]

-=[Een wijs man zei eens: als een tweaker heb ik zo mijn TCP-IP connecties. Deze uitspraak staat tot op de dag van vandaag © mr._Anderson]=-=[ AMD64 overclock en registratie site: AMDGeeks.net


  • mr._Anderson
  • Registratie: Februari 2000
  • Niet online

mr._Anderson

[Een man is nog geen Tweaker]

Topicstarter
Er hoeft toch verder niets in die .js bestand, als de functie? Dus wat ik in mijn openings post weer geef?

Verder geeft firebird het volgende:
eerst een syntax fout aan in de .js bestand,

en als tweede, setModel is not defined.

-=[Een wijs man zei eens: als een tweaker heb ik zo mijn TCP-IP connecties. Deze uitspraak staat tot op de dag van vandaag © mr._Anderson]=-=[ AMD64 overclock en registratie site: AMDGeeks.net


  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Zet in dat externe js bestand een alert("bla") om te zien of hij uberhaput wel geincluded word.

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 00:47
code:
1
<select name="selectComponent" onChange="javascript:setModel()">
Bij mijn weten moet dit
code:
1
<select name="selectComponent" onChange="setModel()">
zijn.
Zonder javascript: dus.

  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 27-05 09:48
Dat zal wel (dat ie geinclude word ... neem aan dat ie gewoon tussen de <headers> staat)

Sloop dat 'javascript:setModel()' er nou eens uit en vervang het door 'setModel();'

  • mr._Anderson
  • Registratie: Februari 2000
  • Niet online

mr._Anderson

[Een man is nog geen Tweaker]

Topicstarter
Nou.. hij doet het opeens :S
Ik heb de src van sript veranderd, maar zo ben ik ook begonnen en toen deed hij het ook niet !!!!
code:
1
<script src="script/externBestand.js" language="JavaScript" type="text/javascript"></script>


Het werkt nu dus, en het werkt met en zonder javascript: maar omdat jullie zeggen dat het beter is heb ik het maar weggelaten :)

Mijn huidige code is dus(ik gebruik dus algemene namen, externBestand, selectComponent, formulierNaam, tekstvak en tekstvak2):

code:
1
<script src="script/externBestand.js" language="JavaScript" type="text/javascript"></script>


roep ik het extern bestand aan, wat in een submap script staat.

In een select HTML component roep ik als volgt de functie aan:
code:
1
<select name="selectComponent" onChange="setModel()">


En hieronder de complete inhoud van mijn JS bestand, niet eronder meer dus of erboven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function setModel()
{
    //uitleg
    if(document.formulierNaam.selectComponent.options[document.formulierNaam.selectComponent.selectedIndex].text == "Models")
    {
        document.formulierNaam.tekstvak.value = "";
        alert("Boodschap");
    }
    else
    {
        document.formulierNaam.tekstvak.value = document.formulierNaam.selectComponent.value;
        document.formulierNaam.tekstvak2.focus();
    }
}


UPDATE:
ahum.. hij doet het wel in IE.. niet in firebird.. gek om van te worden.. (ik laat het algemeen namen veranderen even voor wat het is, kost erg veel moeite..)

Error: document.formulierNaam.tekstvak has no properties
Source File: http://localhost/project/script/externBestand.js
Line: 11

Error: document.formulierNaam.tekstvak has no properties
Source File: http://localhost/project/script/externBestand.js
Line: 6

UPDATE:
Ik was vergeten de <select ... > af te sluiten met </select>, dat stomme IE pakt het dan schijnbaar toch.
Nu werkt het ook in firebird!

het werkt dus met javascript:setModel() EN setModel()
wat is nu het beste om te gebruiken?

[ Voor 207% gewijzigd door mr._Anderson op 12-01-2004 08:29 ]

-=[Een wijs man zei eens: als een tweaker heb ik zo mijn TCP-IP connecties. Deze uitspraak staat tot op de dag van vandaag © mr._Anderson]=-=[ AMD64 overclock en registratie site: AMDGeeks.net


  • LinuX-TUX
  • Registratie: December 2003
  • Laatst online: 27-05 09:48
de F5 toets!

Ik denk dat het beste zou zijn zonder javascript:
1) Scheelt minder data verkeer
2) Wordt meer gebruikt om een snelle functie (onBlabla="javascript:window.alert('hoera');") eraan te koppelen

[ Voor 7% gewijzigd door LinuX-TUX op 12-01-2004 00:06 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

JavaScript:
1
if(document.formulierNaam.selectComponent.options[document.formulierNaam.selectComponent.selectedIndex].text == "Models")

moet worden:
JavaScript:
1
if(document.forms["formulierNaam"].elements["selectComponent"].options[document.forms["formulierNaam"].elements["selectComponent"].selectedIndex].text == "Models")

[ Voor 38% gewijzigd door André op 12-01-2004 00:33 ]


  • mr._Anderson
  • Registratie: Februari 2000
  • Niet online

mr._Anderson

[Een man is nog geen Tweaker]

Topicstarter
LinuX-TUX schreef op 12 januari 2004 @ 00:06:
de F5 toets!

Ik denk dat het beste zou zijn zonder javascript:
1) Scheelt minder data verkeer
2) Wordt meer gebruikt om een snelle functie (onBlabla="javascript:window.alert('hoera');") eraan te koppelen
F5 toets, oke ik ben beetje noob op dit gebied, maar zo'n noob ;) had zelfs m'n cache geleegd :D
André schreef op 12 januari 2004 @ 00:32:
JavaScript:
1
if(document.formulierNaam.selectComponent.options[document.formulierNaam.selectComponent.selectedIndex].text == "Models")

moet worden:
JavaScript:
1
if(document.forms["formulierNaam"].elements["selectComponent"].options[document.forms["formulierNaam"].elements["selectComponent"].selectedIndex].text == "Models")
Thx, dat ziet er goed uit!

Iedereen verder bedankt voor de hulp.

-=[Een wijs man zei eens: als een tweaker heb ik zo mijn TCP-IP connecties. Deze uitspraak staat tot op de dag van vandaag © mr._Anderson]=-=[ AMD64 overclock en registratie site: AMDGeeks.net


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 12:46

crisp

Devver

Pixelated

over dat javascript: - een eventhandler impliceert al dat er javascript gebruikt wordt tenzij anders aangegeven. Weglaten dus.

Intentionally left blank


Verwijderd

Naast het niet officiele 'javascript:' protocol kun je ook het HTML 'language' attribuut droppen. Totaal overbodig.
Pagina: 1