FOK!forum / Digital Corner / [Javascript] voor dummies - deel 4
fokME2donderdag 8 juni 2006 @ 00:57


De (voorlopige) OP van de [Javascript] voor dummies reeks.
Hier kan je alle vragen stellen over Javascript en alles wat er mee te maken heeft.

Heb je een probleem, post dan ook even de code waar het probleem zit Zo kunnen we je beter proberen te helpen.

Vorige delen:
[Javascript] voor dummies - Deel 1
[Javascript] voor dummies - Deel 2
[Javascript] voor dummies - deel 3
[Javascript] voor dummies - deel 4

Handige links:
Quircksmode Javascript
Javascript Cheat Sheet
Mis je een link? Geef even een gil in het topic

Tutorials:
W3Schools Javascript
W3Schools AJAX

Laatste posts uit het vorige topic:
quote:
Op donderdag 8 juni 2006 00:35 schreef SuperRembo het volgende:
Ik denk dat het opvragen van de positie niet klopt. Hoe dat beter kan kan je bijvoorbeeld lezen op Quirksmode.org.
quote:
Op donderdag 8 juni 2006 00:54 schreef fokME2 het volgende:
Ik heb Quirksmode etc al doorgelezen.
Deze manier van opvragen gebruikte ik al, toen ik objecten manipuleerde via getElementById.
http://dev.rnabv.nl/drag_id/drag.html

Maar nu maak ik de objecten aan met javascript, ik heb het gevoel dat het daar aan licht, maar ik weet niet wat ik er aan moet doen.
Deze OP: http://wiki.fok.nl/index.php/OP/Javascript

[ Bericht 22% gewijzigd door fokME2 op 08-06-2006 21:53:35 ]
mscholdonderdag 8 juni 2006 @ 01:37
ik zou zeggen ga em maken..

en misschien kom ik nog wel meer dingen m.b.t. AJAX (wil ook de upload eens proberen, en dan wanneer hij upload, een loading ding laten zien , of beter een progessbar)
SuperRembodonderdag 8 juni 2006 @ 07:51
@fokME2:
Deze http://dev.rnabv.nl/drag_id/drag.html werkt nu toch goed in Firefox en Internet Explorer?
Darkomendonderdag 8 juni 2006 @ 09:02
quote:
Op donderdag 8 juni 2006 01:37 schreef mschol het volgende:
ik zou zeggen ga em maken..

en misschien kom ik nog wel meer dingen m.b.t. AJAX (wil ook de upload eens proberen, en dan wanneer hij upload, een loading ding laten zien , of beter een progessbar)
Dat is zeker interresant
#ANONIEMdonderdag 8 juni 2006 @ 09:05
tvptje!
Chandlerdonderdag 8 juni 2006 @ 11:18
tvp, zou zeggen fokme2, maak er zelf 1
fokME2donderdag 8 juni 2006 @ 16:39
Ik zal komende week is wat prutsen voor een OP.

@SuperREmbo:
Ja, dat klopt, maar het enige verschil tussen:
http://dev.rnabv.nl/drag_id/drag.html en http://dev.rnabv.nl/drag.html is als het goed is de declaratie van het object. Bij /drag_id/drag.html staan de divs al in de htmlcode en worden deze mbv van docuemten.getElementById aangeroepen.
Bij /drag.html worden de divs ook gegenereerd met behulp van javascript.

Ik snap echter niet dat dat effect heeft op de werking?
Darkomendonderdag 8 juni 2006 @ 16:47
Waarom geef je jouw divs dan ook niet een id mee?

obj.setAttribute('id',divIdName);
HuHudonderdag 8 juni 2006 @ 19:51
Vraagje: ik heb een upload-script waarmee bestanden kunnen worden geupload (dûh). Maargoed, als er op Submit wordt geklikt zou ik graag een animated gifje willen tonen, zodat men kan zien dat hij bezig is.

Ik heb een mooi loading gifje voor handen. Maar deze wil ik dus midden in het window tonen op het moment dat er op Submit geklikt wordt. Hij moet dus boven de site zelf 'zweven'.

Heeft iemand een idee of tip hoe ik dit makkelijk kan doen? Ik had wat geprobeerd met een <div> tag die zichtbaar werd op het moment dat je klikte, maar dat schoot niet echt op.
fokME2donderdag 8 juni 2006 @ 20:57
quote:
Op donderdag 8 juni 2006 16:47 schreef Darkomen het volgende:
Waarom geef je jouw divs dan ook niet een id mee?

obj.setAttribute('id',divIdName);
Ik vond het juist interessant om het te doen met objecten zonder ze dat id mee te geven. Want het zou toch niet uit moeten maken of je getElementById doet, of het object uit een objectenverzameling haalt?

@HuHu:
Ook geen divje met een position: absolute; en z-index: 1; ? Of zelfs een hogere z-index.
mscholdonderdag 8 juni 2006 @ 21:21
quote:
Op donderdag 8 juni 2006 19:51 schreef HuHu het volgende:
Vraagje: ik heb een upload-script waarmee bestanden kunnen worden geupload (dûh). Maargoed, als er op Submit wordt geklikt zou ik graag een animated gifje willen tonen, zodat men kan zien dat hij bezig is.

Ik heb een mooi loading gifje voor handen. Maar deze wil ik dus midden in het window tonen op het moment dat er op Submit geklikt wordt. Hij moet dus boven de site zelf 'zweven'.

Heeft iemand een idee of tip hoe ik dit makkelijk kan doen? Ik had wat geprobeerd met een <div> tag die zichtbaar werd op het moment dat je klikte, maar dat schoot niet echt op.
klinkt erg als iets voor AJAX
fokME2donderdag 8 juni 2006 @ 21:54
Check de OP, check de OP
CraZaaydonderdag 8 juni 2006 @ 22:13
quote:
Op donderdag 8 juni 2006 19:51 schreef HuHu het volgende:
Vraagje: ik heb een upload-script waarmee bestanden kunnen worden geupload (dûh). Maargoed, als er op Submit wordt geklikt zou ik graag een animated gifje willen tonen, zodat men kan zien dat hij bezig is.

Ik heb een mooi loading gifje voor handen. Maar deze wil ik dus midden in het window tonen op het moment dat er op Submit geklikt wordt. Hij moet dus boven de site zelf 'zweven'.

Heeft iemand een idee of tip hoe ik dit makkelijk kan doen? Ik had wat geprobeerd met een <div> tag die zichtbaar werd op het moment dat je klikte, maar dat schoot niet echt op.
Waarom schoot dat niet op?

Wanneer je een div over de pagina legt met hierin die gif en je zet deze met javascript op 'display: block' dan doet het wat je wilt.

Tip: Wil je dat hierbij de onderliggende pagina niet klikbaar is (bijvoorbeeld de links ofzo), geef die div dan als achtergrond een transparante gif.

Hiervoor ajax gebruiken is onnodig, omdat er geen communicatie met de server nodig is (on submit > display div).
mscholdonderdag 8 juni 2006 @ 22:47
quote:
Op donderdag 8 juni 2006 22:13 schreef CraZaay het volgende:
Hiervoor ajax gebruiken is onnodig, omdat er geen communicatie met de server nodig is (on submit > display div).
true, maar punt is dat dat me binnenschoot doordat ik rer mee bezig was
mscholvrijdag 9 juni 2006 @ 15:02
hmmm uploading met JS wordt errug lastig
voor een echte progress bar (die het dus bij houdt) moet ik php patchen met een of andere patch, nou werkt ik met een windows server dus doe ik dat niet
hmm een loading dingetje zou te doen moeten zijn..
eerst eff uitvogelen hoe ik door divje van 100x10 een balkje kan laten heen en weer gaan (zodat je kan zien dattie laad)
CraZaayvrijdag 9 juni 2006 @ 19:04
Een upload progress indicator werkt volgens mij alleen fatsoenlijk met Flash. Anders moet je inderdaad bijv. met de door jou genoemde patch met de server gaan communiceren om terug te krijgen hoeveel bytes er binnen zijn.
fokME2maandag 12 juni 2006 @ 16:17
Niemand antwoord op mijn vraag uit het vorige topique?!
Darkomenmaandag 12 juni 2006 @ 16:23
Wie denkt er even mee, de fout zit in dit stukje javascript/xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
function getData(dataSource) 

if(XMLHttpRequestObject) {
     XMLHttpRequestObject.open("GET", dataSource); 
     XMLHttpRequestObject.onreadystatechange = function() { 
      if (XMLHttpRequestObject.readyState == 4 && 
        XMLHttpRequestObject.status == 200) { 
         eval(XMLHttpRequestObject.responseText);            
         } 
      } 
     XMLHttpRequestObject.send(null); 
   }
}

Het probleem treed op waneer er al een XML request open staat, dan krijg je een javascripterror wat uit komt op no data.
Het schijnt af te vangen te zijn maar dat lukt dus niet.
fokME2maandag 12 juni 2006 @ 16:37
@Darkomen

Hoe bedoel je als er al een XML request open staat? Je hoeft er toc maar 1 te openen?
SuperRembomaandag 12 juni 2006 @ 21:08
@Darkomen:
Als de vorige request nog niet klaar is, dan kan je dat aan de readyState zien. Je moet dan zelf bepalen hoe je dat oplost. Je kunt de huidige request afbreken. Je kunt de nieuwe request annuleren. Je kunt de nieuwe request in een wachtrij zetten en uitvoeren als de vorige request klaar is. Je kunt ook een nieuw XMLHTTPRequest object maken.
Darkomenmaandag 12 juni 2006 @ 21:41
Dat dacht ik dus ook, en ik weet ongeveer welke readystates het zijn.
Ik weet alleen niet wat hij daarvoor dus aangeeft.
Dacht ff slim te zijn door het zoals hieronder te doen, maar daarvoor heeft hij de fout dus al.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function getData(dataSource) 

if(XMLHttpRequestObject) {
     XMLHttpRequestObject.open("GET", dataSource); 
     XMLHttpRequestObject.onreadystatechange = function() { 
      if (XMLHttpRequestObject.readyState == 4 && 
        XMLHttpRequestObject.status == 200) { 
         eval(XMLHttpRequestObject.responseText);            
         } 
      else
        {
         alert(XMLHttpRequestObject.readyState+"\n"+XMLHttpRequestObject.responseText);
        }
      } 
     XMLHttpRequestObject.send(null); 
   }
}
Fout: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]"  nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)"  location: "JS frame :: http://borntobewild.site.nl/Chat/js/chat.js :: getData :: line 22"  data: no]
Bronbestand: http://borntobewild.site.nl/js/chat.js
Regel: 22


[ Bericht 51% gewijzigd door Darkomen op 12-06-2006 21:57:26 ]
CraZaaymaandag 12 juni 2006 @ 21:56
quote:
Op maandag 12 juni 2006 21:41 schreef Darkomen het volgende:
Dat dacht ik dus ook, en ik weet ongeveer welke readystates het zijn.
Ter referentie:

0 Object is not initialized
1 Loading object is loading data
2 Loaded object has loaded data
3 Data from object can be worked with
4 Object completely initialized
Darkomenmaandag 12 juni 2006 @ 22:11
Die had ik dus, maar de fout ontstaat volgens mij voordat ik de readystate krijg, zoals ik hierboven aangeef.
fokME2maandag 12 juni 2006 @ 22:20
@Darkomen: leeft je searchfunctie al?
Darkomenmaandag 12 juni 2006 @ 22:26
Yups, maar daar zit ook op een bepaald moment de zelfde fout in

http://muziek.borntobewild.nl
SuperRembomaandag 12 juni 2006 @ 22:31
Een alert() gebruiken is in zo'n geval als dit (waarbij de timing een rol speelt) niet handig. Het is dan makkelijker om bijvoorbeeld een tekstje aan de window.status te plakken.

1window.status += ','+XMLHttpRequestObject.readyState;


(of je gebruikt mijn debug scriptje)
CraZaaymaandag 12 juni 2006 @ 22:35
quote:
Op maandag 12 juni 2006 22:31 schreef SuperRembo het volgende:
Een alert() gebruiken is in zo'n geval als dit (waarbij de timing een rol speelt) niet handig. Het is dan makkelijker om bijvoorbeeld een tekstje aan de window.status te plakken.
[ code verwijderd ]
Werkt dat niet alleen in IE (of iig niet in FF)?
SuperRembomaandag 12 juni 2006 @ 22:40
window.status is in elke browser beschikbaar.
Maar je moet natuurlijk in Firefox niet de optie aan hebben staan dat javascript verbied om de status tekst aan te passen
Darkomenmaandag 12 juni 2006 @ 22:50
quote:
Op maandag 12 juni 2006 22:31 schreef SuperRembo het volgende:
Een alert() gebruiken is in zo'n geval als dit (waarbij de timing een rol speelt) niet handig. Het is dan makkelijker om bijvoorbeeld een tekstje aan de window.status te plakken.
[ code verwijderd ]

(of je gebruikt mijn debug scriptje)
Heeft niet echt geholpen, hij geeft steeds, 1,2,3,1,2,3,1,2,3,1,2,3,1,1,1,1,2,3,1,1,2,3,1 en dan houdt het op. en krijg ik de foutmelding.

Hoe werkt die debugger van jou?
SuperRembomaandag 12 juni 2006 @ 23:00
quote:
Op maandag 12 juni 2006 22:50 schreef Darkomen het volgende:
Hoe werkt die debugger van jou?
Die pagina geeft meteen een voorbeeld.
Je hoeft alleen debug.js te includen. Default staat hij uit, je zet 'm aan met Debug.enabled = true. Je schrijft tekst naar 't windowtje met Debug.write('test'). Je kunt de plaats van het windowtje nog veranderen met Ctrl+pijltjes.
Darkomenmaandag 12 juni 2006 @ 23:03
Eens proberen, bedankt.
CraZaaydinsdag 13 juni 2006 @ 08:07
quote:
Op maandag 12 juni 2006 22:40 schreef SuperRembo het volgende:
window.status is in elke browser beschikbaar.
Maar je moet natuurlijk in Firefox niet de optie aan hebben staan dat javascript verbied om de status tekst aan te passen
Goed punt Handig ook dat het standaard uit staat
hbruyndinsdag 13 juni 2006 @ 13:12
Ik heb een probleem waarmee ik niet verder kom.
Het gaat om een script wat vanuit een frame een foto moet cross faden in een ander frame.

De foto die gefade wordt heeft id "test" en staat in een frame met de naam "header".
De functie wordt als volgt aangeroepen:

1crossfade(parent.header.test, 'images/plaatje2.jpg', '1', '');


De fout die ik krijg op regel 141 in het script is: "Kan lid niet vinden"
Hieronder het gehele script.

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
// IXF1.11 :: Image cross-fade 
// *****************************************************
// DOM scripting by brothercake -- http://www.brothercake.com/
//******************************************************
//global object
var ixf = { 'clock' : null, 'count' : 1 }
/*******************************************************


/*****************************************************************************
 List the images that need to be cached
*****************************************************************************/

ixf.imgs = [
   'images/home.jpg',
   'images/agenda.jpg',
   ];

/*****************************************************************************
*****************************************************************************/


//cache the images
ixf.imgsLen = ixf.imgs.length;
ixf.cache = [];
for(var i=0; i<ixf.imgsLen; i++)
{
   ixf.cache[i] = new Image;
   ixf.cache[i].src = ixf.imgs[i];
}


//crossfade setup function
function crossfade()
{
   //if the timer is not already going
   if(ixf.clock == null)
   {
      //copy the image object 
      ixf.obj = arguments[0];
      
      //copy the image src argument 
      ixf.src = arguments[1];
      
      //store the supported form of opacity
      if(typeof ixf.obj.style.opacity != 'undefined')
      {
         ixf.type = 'w3c';
      }
      else if(typeof ixf.obj.style.MozOpacity != 'undefined')
      {
         ixf.type = 'moz';
      }
      else if(typeof ixf.obj.style.KhtmlOpacity != 'undefined')
      {
         ixf.type = 'khtml';
      }
      else if(typeof ixf.obj.filters == 'object')
      {
         //weed out win/ie5.0 by testing the length of the filters collection (where filters is an object with no data)
         //then weed out mac/ie5 by testing first the existence of the alpha object (to prevent errors in win/ie5.0)
         //then the returned value type, which should be a number, but in mac/ie5 is an empty string
         ixf.type = (ixf.obj.filters.length > 0 && typeof ixf.obj.filters.alpha == 'object' && typeof ixf.obj.filters.alpha.opacity == 'number') ? 'ie' : 'none';
      }
      else
      {
         ixf.type = 'none';
      }
      
      //change the image alt text if defined
      if(typeof arguments[3] != 'undefined' && arguments[3] != '')
      {
         ixf.obj.alt = arguments[3];
      }
      
      //if any kind of opacity is supported
      if(ixf.type != 'none')
      {
         //create a new image object and append it to body
         var doc = parent.header.document;

         ixf.newimg = doc.createElement('img');

         //set positioning classname
         ixf.newimg.className = 'idupe';
         
         //set src to new image src
         ixf.newimg.src = ixf.src

         //move it to superimpose original image
         ixf.newimg.style.left = ixf.getRealPosition(ixf.obj, 'x') + 'px';
         ixf.newimg.style.top = ixf.getRealPosition(ixf.obj, 'y') + 'px';
         
         //copy and convert fade duration argument 
         ixf.length = parseInt(arguments[2], 10) * 1000;
         
         //create fade resolution argument as 20 steps per transition
         ixf.resolution = parseInt(arguments[2], 10) * 20;
         
         //start the timer
         ixf.clock = setInterval('ixf.crossfade()', ixf.length/ixf.resolution);
      }
      
      //otherwise if opacity is not supported
      else
      {
         //just do the image swap
         ixf.obj.src = ixf.src;
      }
      
   }
};


//crossfade timer function
ixf.crossfade = function()
{
   //decrease the counter on a linear scale
   ixf.count -= (1 / ixf.resolution);
   
   //if the counter has reached the bottom
   if(ixf.count < (1 / ixf.resolution))
   {
      //clear the timer
      clearInterval(ixf.clock);
      ixf.clock = null;
      
      //reset the counter
      ixf.count = 1;
      
      //set the original image to the src of the new image
      ixf.obj.src = ixf.src;
   }
   
   //set new opacity value on both elements
   //using whatever method is supported
   switch(ixf.type)
   {
      case 'ie' :
         ixf.obj.filters.alpha.opacity = ixf.count * 100;
         ixf.newimg.filters.alpha.opacity = (1 - ixf.count) * 100;
         break;
         
      case 'khtml' :
         ixf.obj.style.KhtmlOpacity = ixf.count;
         ixf.newimg.style.KhtmlOpacity = (1 - ixf.count);
         break;
         
      case 'moz' : 
         //restrict max opacity to prevent a visual popping effect in firefox
         ixf.obj.style.MozOpacity = (ixf.count == 1 ? 0.9999999 : ixf.count);
         ixf.newimg.style.MozOpacity = (1 - ixf.count);
         break;
         
      default : 
         //restrict max opacity to prevent a visual popping effect in firefox
         ixf.obj.style.opacity = (ixf.count == 1 ? 0.9999999 : ixf.count);
         ixf.newimg.style.opacity = (1 - ixf.count);
   }
   
   //now that we've gone through one fade iteration 
   //we can show the image that's fading in
   ixf.newimg.style.visibility = 'visible';
   
   //keep new image in position with original image
   //in case text size changes mid transition or something
   ixf.newimg.style.left = ixf.getRealPosition(ixf.obj, 'x') + 'px';
   ixf.newimg.style.top = ixf.getRealPosition(ixf.obj, 'y') + 'px';
   
   //if the counter is at the top, which is just after the timer has finished
   if(ixf.count == 1)
   {
      //remove the duplicate image
      //ixf.newimg.parentNode.removeChild(ixf.newimg);
   }
};


//get real position method
ixf.getRealPosition = function()
{
   this.pos = (arguments[1] == 'x') ? arguments[0].offsetLeft : arguments[0].offsetTop;
   this.tmp = arguments[0].offsetParent;
   while(this.tmp != null)
   {
      this.pos += (arguments[1] == 'x') ? this.tmp.offsetLeft : this.tmp.offsetTop;
      this.tmp = this.tmp.offsetParent;
   }
   
   return this.pos;
};


Ik hoop dat iemand me hiermee kan helpen.

Bedankt alvast.
Darkomendinsdag 13 juni 2006 @ 15:38
quote:
Op maandag 12 juni 2006 23:03 schreef Darkomen het volgende:
Eens proberen, bedankt.
Helaas ik kom er dus niet achter hoe het op te lossen.
XMLHttpRequestObject.open("GET", dataSource, true);
Zorgt er in iedergeval voor dat het script door gaat.
Kijken jullie eens, waneer je dus veel 'lult' loopt hij vast en krijg je een error.
http://borntobewild.satanist.nl/Chat/


@ hbruyn
quote:
Op donderdag 8 juni 2006 16:17 schreef Darkomen het volgende:...
Maar heb je een online voorbeeld, je beschrijving zegt weinig.


[ Bericht 18% gewijzigd door Darkomen op 13-06-2006 16:05:32 ]
SuperRembodinsdag 13 juni 2006 @ 19:20
Het probleem is (zoals ik al eerder zei) dat de ene request nog niet klaar is als je al weer een nieuwe wil sturen met hetzelfde request object. Dat lukt dus niet.
fokME2dinsdag 13 juni 2006 @ 20:03
Je script loopt hier niet vast? Na spamactie?
Darkomendinsdag 13 juni 2006 @ 21:14
quote:
Op dinsdag 13 juni 2006 19:20 schreef SuperRembo het volgende:
Het probleem is (zoals ik al eerder zei) dat de ene request nog niet klaar is als je al weer een nieuwe wil sturen met hetzelfde request object. Dat lukt dus niet.
Yups, dat snapte ik ik weet ook dat dat de fout is, ik kan het alleen niet afvangen.
Ook het steeds een nieuw object aanmaken loste het niet op.
Dan komt er soms niets aan?!

@fokme2

Nope, ook niet na je spam actie, en ook php etc word eruit gefilterd.
fokME2dinsdag 13 juni 2006 @ 21:17
Wanneer krijg je dan een error?
Darkomendinsdag 13 juni 2006 @ 21:36
bij veel spammen
En in princiepe ook als je hem gewoon een tijdje door laat refreshen (chat refreshed zichzelf)
Zet dan in firefox je javascript console maar eens open dan zie jehem wel verschijnen.
SuperRembodinsdag 13 juni 2006 @ 22:33
quote:
Op dinsdag 13 juni 2006 21:14 schreef Darkomen het volgende:
Ook het steeds een nieuw object aanmaken loste het niet op.
Als je een nieuw XMLHTTPRequest object maakt, dan moet je er natuurlijk wel voor zorgen dat je de vorige overschijft (die mogelijk nog niet klaar is). Het makkelijkste kan je dat bereiken door het request object in een lokale variabele te stoppen in getData().
Omdat dit voor een chatprogrammaatje is, kan je het ook vrij makkelijk op een andere manier oplossen. Als het (globale) request object nog niet klaar is, dan stop je de nieuw ingevoerde tekst in een buffer. Die buffer verstuur je dan zodra het request object klaar is.
SuperRembowoensdag 14 juni 2006 @ 00:28
Ik heb zelf even een simpel ajax-chat dingetje gemaakt. Het is een beginnetje, alleen om te zien hoe of mijn aanpak goed werkt.
Een heleboel functies zitten er nog niet in, maar hij kan wel tegen snel typen.
Darkomenwoensdag 14 juni 2006 @ 10:50
Ik volg jouw voorbeeld wel
En probeer daarvan te leren wat ik nu eigenlijk steeds fout doe.
mscholvrijdag 16 juni 2006 @ 13:03
ik ben een beetje bezig met eeen semi achtig AJAX ding en loop nu teggen het volgende probleem aan:
ik roep een functie aan met 3 parameters:
1function sndreq(param, param2, divid)

maar zodra ik em door wil geven naar een andere functie:
1http.onreadystatechange = handleresponse(divid);


dan krijg ik de melding dat er een type mismatch is op die regel ?
de volledige source code van het script is hier te vinden: een werkende pagina is te vinden op mijn homepage..

wat zie ik over het hoofd? waarom kan ik de waarde in divid niet gewoon doorgeven
#ANONIEMvrijdag 16 juni 2006 @ 13:31
quote:
Op vrijdag 16 juni 2006 13:03 schreef mschol het volgende:
ik ben een beetje bezig met eeen semi achtig AJAX ding en loop nu teggen het volgende probleem aan:
ik roep een functie aan met 3 parameters:
[ code verwijderd ]

maar zodra ik em door wil geven naar een andere functie:
[ code verwijderd ]

dan krijg ik de melding dat er een type mismatch is op die regel ?
de volledige source code van het script is hier te vinden: een werkende pagina is te vinden op mijn homepage..

wat zie ik over het hoofd? waarom kan ik de waarde in divid niet gewoon doorgeven
ik denk dat je eerst een declaratie moet doen. Een type mismatch hoeft niet op die variable te gebeuren, kan ook op 1 van de 2 functies gebeuren.
SuperRembovrijdag 16 juni 2006 @ 13:37
Verander

1
2
var divid2 = String(divid)
http.onreadystatechange = handleresponse(divid2);

in

1
2
3
http.onreadystatechange = function() {
   handleresponse(divid);
};


(Zie ook http://jibbering.com/faq/faq_notes/closures.html voor uitleg over closures.)
mscholvrijdag 16 juni 2006 @ 13:56
quote:
Op vrijdag 16 juni 2006 13:37 schreef SuperRembo het volgende:
Verander
[ code verwijderd ]

in
[ code verwijderd ]

(Zie ook http://jibbering.com/faq/faq_notes/closures.html voor uitleg over closures.)
hmm zo werrkt et idd, straks eff die webpagina doornemen..
en ook even kijken hoe ik 2x een jsje kan uitvoeren (volgens mij gewoon geen return waarde mee geven, bij de eerste aanroep tenminste dit is wat mij logisch lijkt)
Etceteravrijdag 16 juni 2006 @ 16:04
ik geloof dat ik wel wat hulp kan gebruiken ik heb een script voor een formulier gemaakt, maar het werkt niet volgens mij. ik weet niet wat ik fout doe, dus heeeelp!

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function afhandelen(){

var naamVeld = document.getElementById ("naamVeld");
var naam = naamVeld.value;
var naamCell = document.getElementById ("naamCel");
naamCell.innerHTML = naam;

var bedrijfVeld = document.getElementById("Bedrijf");
var bedrijf = bedrijfVeld.value;
var bedrijfCell = document.getElementById ("bedrijfCel");
bedrijfCell.innerHTML = bedrijf;

var adresVeld = document.getElementById ("adres");
var adres = adresVeld.value;
var adresCell = document.getElementById ("adresCel");
adresCell.innerHTML = adres;

var postcodecijfersVeld = document.getElementById ("postcodecijfersVeld");
var postcodecijffers= postcodecijfersVeld.value;
var postcodecijfersCell = document.getElementById ("postcodecijfersCel");
postcodecijfersCell.innerhtml = postcodecijfers;

var postcodelettersVeld = document.getElementById ("postcodelettersVeld");
var postcodeletters = postcodelettersVeld.value;
var postcodelettersCell = document.getElementById ("postcodelettersCel");
postcodelettersCell.innerHTML = postcodeletters;

var plaatsVeld = document.getElementById ("Plaats");
var plaats = plaatsVeld.value;
var plaatsCell = document.getElementById ("plaatsCel");
plaatsCell.innerHTML = Plaats;

var telefoonVeld = document.getElementById ("Telefoon");
var telefoon = telefoonVeld.value;
var telefoonCell= document.getElemenbtById ("telefoonCel");
plaatsCell.innerhtml = Plaats;

var functieVeld = document.getElementById ("Functie");
var functie = functieVeld.value;
var functieCell = document.getElementById ("functieCel");
functieCell.innerhtml = Functie

var infoVeld = document.getElementById ("Informatie");
var informatie = infoVeld.value;
var infoCell = document.getElementById ("infoCell");
infoCell.innerhtml = Informatie
}


sorry dat het zo lang is trouwens, maar een fout zit nu eenmaal in een klein hoekje
SuperRembovrijdag 16 juni 2006 @ 16:19
"Het werkt niet"

Javascript is hoofdlettergevoelig. Het moet .innerHTML zijn in plaats van .innerhtml.

Als er zo veel herhaling in je code zit is het makkelijker om een funtie te makne die de value van het ene element naar de innerHTML van het andere element kopieert.
Etceteravrijdag 16 juni 2006 @ 16:23
quote:
Op vrijdag 16 juni 2006 16:19 schreef SuperRembo het volgende:
"Het werkt niet"
Ja sorry ik heb Javascript nog nooit begrepen, html gaat me een stuk beter af.
quote:
Javascript is hoofdlettergevoelig. Het moet .innerHTML zijn in plaats van .innerhtml.
a merci, ik zal eens aan het typen gaan
quote:
Als er zo veel herhaling in je code zit is het makkelijker om een funtie te makne die de value van het ene element naar de innerHTML van het andere element kopieert.
eeeehm...

normaal nederlands??? ik snap je wel geloof ik, maar ik ben nogal visueel ingesteld. hoe moet ikme dat voorstellen?
SuperRembovrijdag 16 juni 2006 @ 17:53
quote:
Op vrijdag 16 juni 2006 16:23 schreef Etcetera het volgende:
Ja sorry ik heb Javascript nog nooit begrepen, html gaat me een stuk beter af.
Ik bedoelde te zeggen dat de mededeling "het werkt niet" erg weinig informatie geeft. Wàt werkt er dan niet? Wàt gaat er fout?
CraZaayvrijdag 16 juni 2006 @ 18:25
quote:
Op vrijdag 16 juni 2006 16:04 schreef Etcetera het volgende:
ik geloof dat ik wel wat hulp kan gebruiken ik heb een script voor een formulier gemaakt, maar het werkt niet volgens mij.
Volgens mij ook niet. Komt door dat ene dingetje.

Met andere woorden: wanneer gaat wat mis?
Etceterazaterdag 17 juni 2006 @ 16:12
goed punt, wel zo makkelijk om te vermelden

ik heb ff een linkje gemaakt: http://145.37.208.96/208493/Inhoud/contact.html

maar ik heb net zitten prutsen en nu heb ik de layout verneukt maar goed, wat er gebeurd:

eerst gebeurde er niks maar nu krijg ik een foutmelding dat in regel 320 een object wordt verwacht. in regel 320 zit echter een tabel waar de inhoud an het formulier in moet verschijnen ik gok datdathet object is van de foutmelding

ik hoop dat ik nu genoeg info heb gegeven. nu ga ik eens kijken hoe ik de layout kan herstellen

oh ja ik test in FF maar heb dan helemaal geen reactie, in IE krijg ik die foutmelding
Darkomenzaterdag 17 juni 2006 @ 16:25
Ik krijg deze foutenin FF
1
2
3
"Beveiligingsfout: Inhoud van http://145.37.208.96/208493/Inhoud/contact.html?naamVeld=&bedrijfVeld=&adresVeld=&postcodeLettersVeld=&postcodeCijfersVeld=&plaatsVeld=&telefoonVeld=&functieVeld=&dag=17&maand=6&jaar=2006&infoVeld=&Submit=Submit mag file:///G|/Afbeeldingen/KnopPortfolioDown.png niet laden of koppelen.

Beveiligingsfout: Inhoud van http://145.37.208.96/208493/Inhoud/contact.html mag file:///G|/Afbeeldingen/KnopPortfolioDown.png niet laden of koppelen."

Ik zou zeggen zet eerst eens die rechten goed.
Gebruik je in FF de toolbar webdevolper?
Etceterazaterdag 17 juni 2006 @ 16:52
quote:
Op zaterdag 17 juni 2006 16:25 schreef Darkomen het volgende:
Ik krijg deze foutenin FF
[ code verwijderd ]

Ik zou zeggen zet eerst eens die rechten goed.
Gebruik je in FF de toolbar webdevolper?
dat denk ik niet. het enige wat ik weet van FF is dat er een DOM inspector inzit toch? dus ik geloof niet dat ik er gebruik van maak

lay out gefikst, geloof dat ik meteen dat rechten probleem ook heb opgelost
Darkomenzaterdag 17 juni 2006 @ 16:55
Ik zou zeggen download hem eens, erg handig.
Maar FF heeft ook een javascript console, extra->javascript console
Hier zie je meestal direct je javascript fouten.
Darkomenzaterdag 17 juni 2006 @ 16:56
Rechten fouten zijn nu idd weg, nu nog alleen:
Fout: controle is not defined
2x Fout: afhandelen is not defined
Etceterazaterdag 17 juni 2006 @ 16:59
quote:
Op zaterdag 17 juni 2006 16:56 schreef Darkomen het volgende:
Rechten fouten zijn nu idd weg, nu nog alleen:
Fout: controle is not defined
2x Fout: afhandelen is not defined
ben echt slim bezig geweest geen wonder dat dat niet defined is er staat geen script in wat 'm defined

* Etcetera gaat orde scheppen in haar chaos
Darkomenzaterdag 17 juni 2006 @ 17:32
Ik zat je script te bekijken en idd dat mist ik ook
Etceterazaterdag 17 juni 2006 @ 17:36
krijg je d'r van als je dingen gaat zitten verwijderen en plakken terwijl je de site zelf niet tot je beschikking hebt het ging een beetje mis enzo, maar het is goed gekomen.

nu alleen dat pokkescript nog.

oh ja, m'n docent mailde me een stukkie dat ik moest veranderen maar dat heb ik al, voor zover ik weet

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
27
28
29
30
31
32
33
34
35
<script language="javascript">

function afhandelen()

{

if              (document.contact.naamVeld.value == "" ||

                document.contact.bedrijfVeld.value == "" ||

                document.contact.adresVeld.value == "" ||

                document.contact.postcodeLettersVeld.value == "" ||

                document.contact.postcodeCijfersVeld.Value == "" ||

                document.contact.plaatsVeld.Value == "" ||

                document.contact.telefoonVeld.Value == "" ||

                document.contact.functieVeld.Value == "" ||

                document.contact.infoVeld.Value == ""){

                                alert('Vul alle velden in aub.');

                                return false;

                }

                return true;

 

}


komt het er dan niet dubbel te staan? lijkt me niet logisch.
Darkomenzaterdag 17 juni 2006 @ 17:40
Ik gebruik dit om formulieren te checken.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function CheckTheForm() {
    var why = "";
    why += IsEmpty(document.getElementById('Inhoud').value,'Inhoud');
    why += IsEmpty(document.getElementById('Pk').value,'Pk');
    
    if (why != "") {
       alert(why);
       return false;
    }
    else    {    return true;}
    }


function IsEmpty(string,veld) {
  var error = "";
  if (string=="") {
  var error = "Het veld "+ veld +" mag niet leeg zijn.\n";
   }
   return error;
}   
Etceterazaterdag 17 juni 2006 @ 17:52
zou ik wel willen gebruiken, maar ik moet de theorie gebruiken die we hebben gehad in de les. en daar zitten strings niet bij helaas
CraZaaymaandag 19 juni 2006 @ 22:59
quote:
Op zaterdag 17 juni 2006 17:52 schreef Etcetera het volgende:
zou ik wel willen gebruiken, maar ik moet de theorie gebruiken die we hebben gehad in de les. en daar zitten strings niet bij helaas
In jouw voorbeeld kijk je toch ook of de input gelijk is aan een lege string?
Etceteradinsdag 20 juni 2006 @ 07:01
quote:
Op maandag 19 juni 2006 22:59 schreef CraZaay het volgende:

[..]

In jouw voorbeeld kijk je toch ook of de input gelijk is aan een lege string?
echt, ik geloof je

maar het enige wat ik me nog een beetje kan herinneren is dat ik 'document.blabla.' en 'innerHTML' moet gebruiken

verder zegt het me geen barst meer
mscholdinsdag 20 juni 2006 @ 11:55
oke ik ga proberen mijn probleem zo simpel mogelijk uit te leggen:
ik heb 2 div's (content & relatedlinks) die ik wil updaten a.d.v. 1 klik op een url
ik dacht dit kan ik doen doorop de link een onclick event toe te voegen als volgt:
1<a href='#' onclick="javascript:clickfunction('parameter1','div1','parameter2','div2')">


in de clickfunction roep ik een andere functie 2x aan:
1
2
3
4
5
function clickfunction(param, divid, param2, divid2)
{
      tester(param,divid);
      tester(param2,divid2);
}


ik update het met het AJAX princiepe (dus http.open etc..)
dat laat ik achterwege aangezien dat wel werkt..
maar mijn probleem is dus dat hij alleen de laatste (2de ) div (die ik opgeef in de functie) update.

hoe kan ik zorgen dat hij dus met 1 muisklik beide divs update?
CraZaaydinsdag 20 juni 2006 @ 12:02
quote:
Op dinsdag 20 juni 2006 11:55 schreef mschol het volgende:
oke ik ga proberen mijn probleem zo simpel mogelijk uit te leggen:
ik heb 2 div's (content & relatedlinks) die ik wil updaten a.d.v. 1 klik op een url
ik dacht dit kan ik doen doorop de link een onclick event toe te voegen als volgt:
[ code verwijderd ]

in de clickfunction roep ik een andere functie 2x aan:
[ code verwijderd ]

ik update het met het AJAX princiepe (dus http.open etc..)
dat laat ik achterwege aangezien dat wel werkt..
maar mijn probleem is dus dat hij alleen de laatste (2de ) div (die ik opgeef in de functie) update.

hoe kan ik zorgen dat hij dus met 1 muisklik beide divs update?
Je moet sowieso even 'javascript:' weg halen, dat is alleen nodig als je het als href gebruikt (wat deprecated is).

Daarnaast zou ik een functie maken die de bewerking voor 1 div per keer doet om het geheel generiek te houden (toekomstige uitbreidingen, etc), dus:
1onclick="tester(param,divid); tester(param,divid); return false"
Of een array in je functie schieten en daar doorheen loopen, maar in ieder geval niet het aantal parameters steeds uitbreiden

Zet eens een alert bovenin je tester() functie zou ik zeggen. Wanneer je die twee keer ziet, wordt die functie dus beide keren uitgevoerd en gaat het later mis (en kun je weer andere relevante code posten). Zo niet, dan is er iets heel raars aan de hand
SuperRembodinsdag 20 juni 2006 @ 12:24
(Her)gebruik je steeds 1 instantie van XMLHttpRequest? Als dat zo is dan denk ik dat de 2e aanroep van tester() de eerste aanroep annuleert.
mscholdinsdag 20 juni 2006 @ 12:59
quote:
Op dinsdag 20 juni 2006 12:24 schreef SuperRembo het volgende:
(Her)gebruik je steeds 1 instantie van XMLHttpRequest? Als dat zo is dan denk ik dat de 2e aanroep van tester() de eerste aanroep annuleert.
aha dit lijk ik idd wel te doen..
hmmm zo even kijken of ik dat kan oplossen..
zal niet al te lastig zijn lijkt mij
rickmanszaterdag 24 juni 2006 @ 08:24
Ik zoek iets heel simpels, maar ik kom er even niet uit .

Ik wil een soort generieke functie maken om te controleren of een veld leeg is. Ik heb nu het volgende:
1
2
3
4
5
6
7
8
function checkEmpty(formValue, formId){
  if ((formId.value.length==0) || (formId.value==null)){
    alert(formId);
  }
  else{ 
    alert("go"); 
  }
}


alleen krijg ik de melding dat de formId niet defined is. Iemand een oplossing?
Knutzaterdag 24 juni 2006 @ 08:47
eval(formId.value.length) misschien ?
rickmanszaterdag 24 juni 2006 @ 08:55
Ik heb het wat makkelijk gedaan .
1
2
3
4
5
6
7
8
function checkEmpty(formValue, formId){
  if ((formValue.length==0) || (formValue==null)){
    alert(formId);
  }
  else{ 
    alert("go"); 
  }
}


Maar op zich ben nog steeds ik best benieuwd hoe ik de properties van een bepaald element kan aanspreken (dus zoals in mijn eerste voorbeeld ).
SuperRembozaterdag 24 juni 2006 @ 09:00
Je gebruikt de variabele formId in de functie alsof het een form element is. Je moet dus een form element doorgeven aan de functie, of de functie zo aanpassen dat je het element bij de formId zoekt.

Je moet trouwens de volgorde van

1if ((formId.value.length==0) || (formId.value==null)){

omdraaien. Als .value==null is krijg je nu een error op de formId.value.length==0 controle.
marcb1974zondag 25 juni 2006 @ 21:16
Waarom werkt JavaScript zo klote in firefox en IE,
ik krijg gewoon de helft van wat ik doen moet niet werkend. En dan tik ik het nog letterlijk over uit het boek
SuperRembozondag 25 juni 2006 @ 21:47
Heb je een oud boek dat overal gebruikt maat van document.all en window.event?
Heb je een voorbeeld van code uit je boek die niet werkt?
gronkzondag 25 juni 2006 @ 21:50
Minstens de helft van leren programmeren is leren debuggen.
gielingmaandag 26 juni 2006 @ 11:39
Ok ik zit nu al even met een irritant probleem wat maar niet wilt werken.

Ik heb een checkbox, die standaard uitgevinkt staat. Alle invoervelden en submitbuttons zijn dan gedisabled. Met javascript worden deze, als de checkbox is aangeklikt, weer ingeschakeld.

Nu zitten er ook drie radiobuttons in dezelfde groep. Deze willen maar niet gedisabled worden, ik heb meerdere scripts geprobeerd maar het probleem is dat ze op het begin van de pagina al gedisabled moeten zijn (iets wat met een van de scripts een probleem was). Heeft iemand een idee hoe dit op te lossen?
SuperRembomaandag 26 juni 2006 @ 13:05
Daar heb ik nooit problemen mee gehad. Een stuk code zou handig zijn.
gronkmaandag 26 juni 2006 @ 13:11
Tikfout in je code?
gielingmaandag 26 juni 2006 @ 13:21
Bijvoorbeeld

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  function zetBalkAanUit()
  {
    if (document.cijferform.BalkAanUit.checked==1) {
      document.images["a"].src = "i/a.gif";
      document.cijferform.AANUIT.value = "1";
      document.images["c"].src = "i/c2.gif";
      document.getElementById('textUitAan').style.color='#C60000';
     document.getElementById('textUitAan2').style.color='#000000';
     document.getElementById('textUitAanRB1').style.color='#000000';
     document.cijferform.status.disabled=false;
     
     } else {
      document.images["a"].src = "i/a_off.gif";
      document.cijferform.AANUIT.value = "0";
      document.images["c"].src = "i/c2_off.gif";
      document.getElementById('textUitAan').style.color='#AAAAAA';
     document.getElementById('textUitAan2').style.color='#AAAAAA';
     document.getElementById('textUitAanRB1').style.color='#AAAAAA';
     document.cijferform.status.disabled=true;
     }
  }


<input type=radio name=\"status\" value=\"want\" ".$w.">a.<br />
<input type=radio name=\"status\" value=\"notwant\" ".$nw.">b.<br />
<input type=radio name=\"status\" value=\"have\" ".$h.">c.<br /><br />
SuperRembomaandag 26 juni 2006 @ 14:35
  • Gebruik altijd document.getElementById('myid'). (document.myid of document.myform.myinput werkt misschien wel, maar is eigenlijk een IE-only constructie)
  • id's zijn case sensitive. Als je een element hebt met id="x", dan vind je dus niets met document.getElementById('X').
  • Geef de elementen die je disabled een andere css class in plaats van in js de kleuren aan te passen. Dus bijvoorbeeld document.getElementById('x').className = 'disabled';.
  • Als je in php een string gebruikt met dubbele "quotes" erin, gebruik dan enkele 'quotes' voor de string zelf. Dan hoef je ze niet te escapen met \. Dat leest veel fijner.
  • Desdinovamaandag 26 juni 2006 @ 17:16
    Ik heb een handje links. In dit geval 2 bijvoorbeeld.

    Nou heb ik per link een div, met de css style display: none;..
    onclick wil ik dat de volgende functie uitgevoerd wordt, maar dan zonder syntax errors


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
       function hideshow(which){
          if (!document.getElementById)
             return;
          if (which.style.display=="block"){
             id1.style.display="none";
             id2.style.display="none";
       
          }
          else {
             id1.style.display="none";
             id2.style.display="none";
       
             which.style.display="block";
          }
       }


    mijn divs hebben id1 en id2.

    Ik wil dat er maar 1 div display: block; kan krijgen, dus alle andere divs moeten display: none; krijgen.

    mijn href = "javascript:hideshow('id1');"

    ik ben niet zo gevorderd met javascript dus ik weet ook niet precies wat ik fout doe.. misschien dat iemand met een beetje ervaring mijn foutje kan verbeteren
    CraZaaymaandag 26 juni 2006 @ 22:27
    quote:
    Op maandag 26 juni 2006 14:35 schreef SuperRembo het volgende:
  • Als je in php een string gebruikt met dubbele "quotes" erin, gebruik dan enkele 'quotes' voor de string zelf. Dan hoef je ze niet te escapen met \. Dat leest veel fijner.
  • Hoort eigenlijkt in het PHP-topic, maar goed: het is per definitie beter om single quotes te gebruiken, en alleen dubbele te gebruiken voor strins waarin een variabele staat die geparsed moet worden. Bij single quotes gaat PHP namelijk niet eens proberen om de string te parsen, wat zorgt voor minder belasting.
    SuperRembomaandag 26 juni 2006 @ 22:59
    Ik vind leesbaarheid een belangrijker dan snelheid in veel gevallen. Gelukkig werkt dat elkaar hier niet tegen.
    CraZaaymaandag 26 juni 2006 @ 23:46
    quote:
    Op maandag 26 juni 2006 22:59 schreef SuperRembo het volgende:
    Ik vind leesbaarheid een belangrijker dan snelheid in veel gevallen. Gelukkig werkt dat elkaar hier niet tegen.
    Gaat prima samen inderdaad hiero. Wat belangrijker is hangt natuurlijk helemaal af van je resources. Een tweede bak gebruiken voor een site omdat de load te hoog is, maar je wel leesbare code hebt is ook een beetje bizar natuurlijk
    CraZaaymaandag 26 juni 2006 @ 23:50
    quote:
    Op maandag 26 juni 2006 17:16 schreef Desdinova het volgende:

    mijn divs hebben id1 en id2.
    Heb je id1 en id2 wel ergens gedefinieerd? Dus bijvoorbeeld:
    1var id1 = document.getElementById('id1');


    Hetzelfde geldt voor 'which'. Je Javascript kan niet ruiken wat 'which' is, dus zul je moeten gebruiken als:
    1document.getElementById(which).style.display == 'block'


    Begin eens op http://www.w3schools.com/js/ zou ik zeggen
    mscholmaandag 26 juni 2006 @ 23:56
    quote:
    Op maandag 26 juni 2006 22:27 schreef CraZaay het volgende:

    [..]

    Hoort eigenlijkt in het PHP-topic, maar goed: het is per definitie beter om single quotes te gebruiken, en alleen dubbele te gebruiken voor strins waarin een variabele staat die geparsed moet worden. Bij single quotes gaat PHP namelijk niet eens proberen om de string te parsen, wat zorgt voor minder belasting.
    ik doe werkelijk alles met dubbele quotes
    wist niet dat zelfs dat performance technisch nie slim was
    SuperRembodinsdag 27 juni 2006 @ 08:58
    quote:
    Op maandag 26 juni 2006 23:50 schreef CraZaay het volgende:
    Hetzelfde geldt voor 'which'. Je Javascript kan niet ruiken wat 'which' is, dus zul je moeten gebruiken
    Dat ligt er natuurlijk helemaal aan hoe de functie wordt aangeroepen.
    Desdinovadinsdag 27 juni 2006 @ 09:35
    quote:
    Op maandag 26 juni 2006 23:50 schreef CraZaay het volgende:

    [..]

    Heb je id1 en id2 wel ergens gedefinieerd? Dus bijvoorbeeld:
    [ code verwijderd ]

    Hetzelfde geldt voor 'which'. Je Javascript kan niet ruiken wat 'which' is, dus zul je moeten gebruiken als:
    [ code verwijderd ]

    Begin eens op http://www.w3schools.com/js/ zou ik zeggen
    aah perfect! ik ben eruit

    ik had het script gebruikt zoals het was op een andere pagina, maar daar had ik niet de wens om alle andere ID's een display none te geven, en toen deed hij het ook gewoon.

    Nu heb ik je zinnetje toegepast en hij doet het
    Desdinovawoensdag 28 juni 2006 @ 13:14
    is het ook mogelijk om via javascript de waarde van een <input type='file'> door te sturen naar een functie?

    dus beetje dit idee:

    <input type="file" name="whatever" onchange="javascript:functiedit('dezewaarde');">
    #ANONIEMwoensdag 28 juni 2006 @ 13:18
    quote:
    Op woensdag 28 juni 2006 13:14 schreef Desdinova het volgende:
    is het ook mogelijk om via javascript de waarde van een <input type='file'> door te sturen naar een functie?

    dus beetje dit idee:

    <input type="file" name="whatever" onchange="javascript:functiedit('dezewaarde');">
    quote:
    <input type="file" name="whatever" onchange="javascript:functiedit(this.value);">


    [ Bericht 17% gewijzigd door #ANONIEM op 28-06-2006 13:19:23 ]
    Desdinovawoensdag 28 juni 2006 @ 13:39
    lijkt niet helemaal te werken..

    is onchange wel de goede trigger?
    ralfiewoensdag 28 juni 2006 @ 13:52
    quote:
    Op woensdag 28 juni 2006 13:39 schreef Desdinova het volgende:
    lijkt niet helemaal te werken..

    is onchange wel de goede trigger?
    Ja, maar dat javascript: hoeft niet

    1<input type="file" name="whatever" onchange="functienaam(this.value)">
    Desdinovawoensdag 28 juni 2006 @ 13:56
    ah tis een firefox beveiligingsdingetje.. werkt fenks
    #ANONIEMwoensdag 28 juni 2006 @ 14:08
    Owja shit, vergeten
    CraZaaydonderdag 29 juni 2006 @ 01:32
    quote:
    Op dinsdag 27 juni 2006 08:58 schreef SuperRembo het volgende:

    [..]

    Dat ligt er natuurlijk helemaal aan hoe de functie wordt aangeroepen.
    Zolang er nergens staat hoe een variabele definieerd wordt, ga ik er voor het gemak vanuit dat het niet gebeurd is. Anders kunnen we natuurlijk nooit iets debuggen hier
    SuperRembodonderdag 29 juni 2006 @ 08:51
    quote:
    Op donderdag 29 juni 2006 01:32 schreef CraZaay het volgende:

    [..]

    Zolang er nergens staat hoe een variabele definieerd wordt, ga ik er voor het gemak vanuit dat het niet gebeurd is. Anders kunnen we natuurlijk nooit iets debuggen hier
    "which" was een parameter van de functie, dus die was wel gedefinieerd.
    CraZaaydonderdag 29 juni 2006 @ 09:30
    quote:
    Op donderdag 29 juni 2006 08:51 schreef SuperRembo het volgende:

    [..]

    "which" was een parameter van de functie, dus die was wel gedefinieerd.
    Je hebt nergens uit af kunnen leiden wat de inhoud van 'which' was iig. Voor mijn part werd de functie gebruikt als "functie('worst')".
    Desdinovadonderdag 29 juni 2006 @ 09:52
    quote:
    Op donderdag 29 juni 2006 09:30 schreef CraZaay het volgende:

    [..]

    Je hebt nergens uit af kunnen leiden wat de inhoud van 'which' was iig. Voor mijn part werd de functie gebruikt als "functie('worst')".
    ik gaf mijn href toch? href = "javascript:hideshow('id1');"

    dan is id1 toch gewoon 'which'?
    CraZaaydonderdag 29 juni 2006 @ 09:54
    quote:
    Op donderdag 29 juni 2006 09:52 schreef Desdinova het volgende:

    [..]

    ik gaf mijn href toch? href = "javascript:hideshow('id1');"

    dan is id1 toch gewoon 'which'?
    Je hebt helemaal gelijk, ik had er overeen gelezen.

    Neemt niet weg dat het daarom niet werkte
    Desdinovadonderdag 29 juni 2006 @ 10:02
    mooi dan volg ik het nog een beetje.

    die werkte wel, hij ging fout bij het toevoegen van de anderen (id1.style.display == "block"), want daar begrijpt hij waarschijnlijk niet dat het om een elementID gaat.
    Desdinovadonderdag 29 juni 2006 @ 12:06
    nu deel 2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
          function hideshow(which){
             var which = document.getElementById.which;
             if (!document.getElementById)
                alert('returning');
                return;
             if (which.style.display=="block")
                which.style.display="none"
             else
                which.style.display="block"
          }


    ik krijg geen errors.. maar ik zie ook niks veranderen.. terwijl de div met ID 'id0' en een zeer aanwezige style toch best aanwezig moet zijn zodra de display op block wordt gezet..

    ik ben een beetje aan het stoeien met de code, dus misschien dat er hier en daar niet veel van klopt, maar ik heb een heleboel manieren geprobeerd. Waarschijnlijk kijk ik ergens overheen, of loopt de code in de shite door de javascript text-editor (fckeditor) die op dezelfde page staat..

    iemand tips voor waar ik naar kan kijken?
    fokME2donderdag 29 juni 2006 @ 12:42
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
          function hideshow(which){
             var which = document.getElementById(which);
             if (!wich)
                alert('returning');
                return;
             if (which.style.display=="block")
                which.style.display="none"
             else
                which.style.display="block"
          }


    Zoiets?
    Desdinovadonderdag 29 juni 2006 @ 12:49
    quote:
    Op donderdag 29 juni 2006 12:42 schreef fokME2 het volgende:

    [ code verwijderd ]

    Zoiets?
    dan kan hij dus het element niet vinden want hij geeft de alert.. (na verbetering van je typo )

    maar waarom is dat?
    fokME2donderdag 29 juni 2006 @ 13:21
    Geen idee (en tijd om het uit te zoeken).

    Wat ik wel weet is dat dit werkt:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function hideshow(hideid){
      var hide = document.getElementById(hideid);
        if (!hide){
          alert('returning');
          return;
        } else {
          hide.style.display = (hide.style.display == "block") ? "none" : "block";
        }
    }
    Desdinovadonderdag 29 juni 2006 @ 13:27
    omfg
    ik heb mn ochtend gewaste aan javascript terwijl de code gewoon klopte.

    mn div stond in een $var, die ik met een schrijffout aanriep

    maar heb je code overgenomen fokme, dies wat compacter en lijkt prima te werken tx
    SuperRembodonderdag 29 juni 2006 @ 13:27
    quote:
    Op donderdag 29 juni 2006 12:42 schreef fokME2 het volgende:

    [ code verwijderd ]

    Zoiets?
    Het is een goede gewoonte om altijd {} te gebruiken bij if statements. Dat had hier een domme fout gescheeld (afgezien van de typo).
    fokME2donderdag 29 juni 2006 @ 13:40
    quote:
    Op donderdag 29 juni 2006 13:27 schreef SuperRembo het volgende:

    [..]

    Het is een goede gewoonte om altijd {} te gebruiken bij if statements. Dat had hier een domme fout gescheeld (afgezien van de typo).
    Doe ik ook altijd. Dit was even een snelle aangepaste versie van Desdinova's code.
    hbruyndinsdag 11 juli 2006 @ 20:40
    Wie heeft er verstand van javascript en wil mij, evt. tegen betaling, helpen?

    Het volgende probleem.
    Ik heb een script wat, bij het klikken op een menuitem, een foto fade naar de foto die bij het menuitem hoort. Nu werkt dit prima als je maar wacht met op het volgende menuitem klikken totdat de fotofade volledig is uitgevoerd. Klik je eerder, dan raakt het script in de war en gaan volgende fotofades niet goed meer.

    De site waar de fout te zien is is:

    w w w . k a t j a w o g n u m . n l

    Alvast bedankt
    hbruyndonderdag 13 juli 2006 @ 14:21
    KICK
    Siegfriedvrijdag 14 juli 2006 @ 19:00
    1<a onclick="confirm_delete(5)" target=\"_self\" class=\"text\">Delete style 5</a>


    Kan iemand mij vertellen hoe ik dit scriptje op een nette manier afmaak?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <SCRIPT language="JavaScript">
    <!--
    function confirm_delete(id)
    {
     var where_to= confirm("Weet u zeker dat u deze style wilt verwijderen?");
     if (where_to== true)
     {
       window.location="index.php?action=delete&id=";
     }
     else
     {
      window.location="#";
      }
    }
    //-->
    </SCRIPT>


    Dus '5' moet achter die url geplakt worden, en als gecancelled wordt moet er niets gebeuren.
    Ben niet zo thuis in javascript
    wipes66vrijdag 14 juli 2006 @ 19:40
    zoiets?
    1
    2
    3
    function confirm_delete(id) {
        if (confirm("Weet u zeker dat u deze style wilt verwijderen?")) window.location="index.php?action=delete&id="+id;
    }
    Siegfriedvrijdag 14 juli 2006 @ 21:03
    Top
    marcb1974vrijdag 14 juli 2006 @ 22:21
    foutje
    Siegfriedzaterdag 15 juli 2006 @ 12:47
    Kan ik variabelen die ik via een promptbox binnen krijg ook binnen php gebruiken op de een of andere manier?
    Kaasblaakzaterdag 15 juli 2006 @ 13:25
    quote:
    Op zaterdag 15 juli 2006 12:47 schreef Siegfried het volgende:
    Kan ik variabelen die ik via een promptbox binnen krijg ook binnen php gebruiken op de een of andere manier?
    Ja maar dan moet je ze zelf doorgeven bijv in de vorm van GET variabelen in de url.

    1
    2
    3
    var antw = prompt("Geef me een antwoord!","");

    document.location="page.php?antwoord=" + escape(antw);
    Siegfriedzaterdag 15 juli 2006 @ 13:34
    Alright, maar op een andere manier gaat niet?
    Sowieso niet via post? (get is zo lelijk..)
    Darkomenzaterdag 15 juli 2006 @ 13:51
    Je kan via xml httprequest posten naar de pagina?
    Siegfriedzaterdag 15 juli 2006 @ 13:53
    Ben niet zo in javascript. Wat bedoel je precies?
    Darkomenzaterdag 15 juli 2006 @ 13:56
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    var antw = prompt("Geef me een antwoord!","");
    processXML(POST,'page.php', escape(antw));


    function processXML(method, url, data){
       if(!request) {var request = new XMLHttpRequest();}
       request.onreadystatechange = function() {
          if (request.readyState == 4 && request.status == 200) {
             //wat je na de post wilt doen
          }
       }
       request.open(method, url, true);
       request.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
       request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
       request.send(data);
    }
    ralfiezaterdag 15 juli 2006 @ 21:00
    quote:
    Op zaterdag 15 juli 2006 13:34 schreef Siegfried het volgende:
    Alright, maar op een andere manier gaat niet?
    Sowieso niet via post? (get is zo lelijk..)
    makkelijke, maar smerige manier is om met javascript een cookie te zetten en deze in php ($_COOKIE) uit te lezen
    marcb1974zondag 16 juli 2006 @ 14:58
    Ik heb het opgegeven,
    wat een teringvak,
    dan maar geen diploma
    SuperRembozondag 16 juli 2006 @ 17:00
    Wat heb je opgegeven?
    marcb1974zondag 16 juli 2006 @ 18:08
    Ik moet voor mijn studie een javascript opdracht maken. Geen idee waarom, het past er niet echt bij, maar goed.
    Desdinovadonderdag 3 augustus 2006 @ 14:12
    Was dit topic effe kwijt zeg

    Ik heb een vraag waarvan ik niet weet of het mogelijk is..

    Stel, ik heb een lijst met namen;
    Henk met de schep
    Henk zonder schep
    Henk op de bakfiets
    Piet op de bakfiets
    Peter op de bakfiets
    Peter niet op de bakfiets

    en een text input (input type = text).

    Is het dan mogelijk dat ik een soort autoaanvullen creeer? Dus dat er zodra ik een P in het textveld tik, er automatisch 'eter niet op de bakfiets' achter komt te staan? Uiteraard wil ik dat zodra ik achter de P een i tik, de achtervolgende tekst wordt veranderd in 'et op de bakfiets'. De achtervolgende tekst moet bij aanvulling dus direct geselecteerd worden zodat er overheen geschreven kan worden. Een veelgebruikt principe in windows volgens mij, maar is het ook webbased (en crossbrowser) mogelijk?
    SuperRembodonderdag 3 augustus 2006 @ 15:29
    Ja dat kan

    Het selecteren van tekst gaat in IE en FF compleet verschillend. Dus success ermee
    ralfiedonderdag 3 augustus 2006 @ 15:51
    quote:
    Op donderdag 3 augustus 2006 14:12 schreef Desdinova het volgende:
    Was dit topic effe kwijt zeg

    Ik heb een vraag waarvan ik niet weet of het mogelijk is..

    Stel, ik heb een lijst met namen;
    Henk met de schep
    Henk zonder schep
    Henk op de bakfiets
    Piet op de bakfiets
    Peter op de bakfiets
    Peter niet op de bakfiets

    en een text input (input type = text).

    Is het dan mogelijk dat ik een soort autoaanvullen creeer? Dus dat er zodra ik een P in het textveld tik, er automatisch 'eter niet op de bakfiets' achter komt te staan? Uiteraard wil ik dat zodra ik achter de P een i tik, de achtervolgende tekst wordt veranderd in 'et op de bakfiets'. De achtervolgende tekst moet bij aanvulling dus direct geselecteerd worden zodat er overheen geschreven kan worden. Een veelgebruikt principe in windows volgens mij, maar is het ook webbased (en crossbrowser) mogelijk?
    quote:
    Op donderdag 3 augustus 2006 15:29 schreef SuperRembo het volgende:
    Ja dat kan

    Het selecteren van tekst gaat in IE en FF compleet verschillend. Dus success ermee
    Idd. Het is wel mogelijk, maar crossbrowser wordt lastig. IE heeft createTextRange() waarmee je text kunt selecteren, firefox heeft setselectionrange(), maar opera en andere browsers hebben zover ik het weet helemaal niks om text te kunnen selecteren. En zonder die functie wordt het toch weinig nuttigs

    wat je wel kunt doen is om een menu te laten sliden met de opties, zoals bijvoorbeeld de googlebar in firefox (om maar ff wat te noemen)

    voorbeeldje:

    EDIT: linkje ipv code dat de layout minder verneukt
    http://www.student.ru.nl/rvanhoorn/files/test.htm

    2 bugjes, je moet twee keer klikken op 1 vd alternatieven (ik denk omdat de browser probeert te selecteren, in dat geval moet je dat disablen) en het is lowercase omdat de array met alternatieven anders niet goed gesorteerd wordt (maar dat zou je eventueel bij het schrijven van de array kunnen doen ipv met array.sort() in js)

    [ Bericht 42% gewijzigd door ralfie op 03-08-2006 15:58:15 ]
    Desdinovadonderdag 3 augustus 2006 @ 16:10
    quote:
    Op donderdag 3 augustus 2006 15:51 schreef ralfie het volgende:

    [..]


    [..]

    Idd. Het is wel mogelijk, maar crossbrowser wordt lastig. IE heeft createTextRange() waarmee je text kunt selecteren, firefox heeft setselectionrange(), maar opera en andere browsers hebben zover ik het weet helemaal niks om text te kunnen selecteren. En zonder die functie wordt het toch weinig nuttigs

    wat je wel kunt doen is om een menu te laten sliden met de opties, zoals bijvoorbeeld de googlebar in firefox (om maar ff wat te noemen)

    voorbeeldje:

    EDIT: linkje ipv code dat de layout minder verneukt
    http://www.student.ru.nl/rvanhoorn/files/test.htm

    2 bugjes, je moet twee keer klikken op 1 vd alternatieven (ik denk omdat de browser probeert te selecteren, in dat geval moet je dat disablen) en het is lowercase omdat de array met alternatieven anders niet goed gesorteerd wordt (maar dat zou je eventueel bij het schrijven van de array kunnen doen ipv met array.sort() in js)
    oh maar dit is ook wel flex! ben heel blij thanks!
    dossiemaandag 7 augustus 2006 @ 15:59
    Ik heb een formulier die ik op twee manieren kan bekijken.
    - 'view mode', waar men niets kan aanpassen omdat de velden disabled zijn.
    - 'edit mode', hier kan het formulier aangepast worden.

    maar nu wil ik de standaard fontkleur voor disablede inputvelden aanpassen, maar dat lukt niet.

    Dit werkt: obj.style.font = "bold 16px arial";
    Maar als ik daar een kleur aan toevoegd pakt ie em niet. Het moet iig werken in ie, voor de rest maakt het niet zoveel uit.
    ralfiemaandag 7 augustus 2006 @ 16:21
    kleuren gaan in de color attribute, niet in de font attribute
    dossiemaandag 7 augustus 2006 @ 17:04
    Ja, zo heb ik het ook geprobeert, maar obj.style.color = 'black'; werkt bv niet op disabled input buttons.
    Als het niet kan dan ga ik het wel anders aanpakken, maar vroeg me af of er niet toch een mogelijkheid is.
    Darkomenmaandag 7 augustus 2006 @ 18:21
    obj.style.color = '#000000'; ook niet?
    Ofterwijl heb je alleen maar kleur namen geprobered ipv hexane code?
    dossiemaandag 7 augustus 2006 @ 21:37
    hex werkt ook niet nee, dat heb ik ook geprobeerd
    SuperRembomaandag 7 augustus 2006 @ 22:48
    Dan gaat er iets anders fout. Krijg je geen foutmeldingen? Post anders even een stukje relevante code.
    dossiedinsdag 8 augustus 2006 @ 08:47
    Ok, hier is een functie om een inputfield te veranderen bij een onclick

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
             function alterStyle(obj)
             {
                   // zet het input formulier op disabled
                   obj.disabled = true;
                   // onderstaande werkt wel
                   obj.style.background='black';
                   /* onderstaande lijkt te werken, maar werkt eigenlijk niet
                      omdat de achtergrond zwart is, wordt het font automagisch wit.
                      maar het blijft een font met een domme slagschaduw, en als je de 
                      achtergrond niet aanpast, werkt het niet
                   */   
                   obj.style.color='white';
                   
             }


    aanroep:
    1<input id="edibulb" name="edibulb" onclick="alterStyle(this)">
    Etceteradinsdag 8 augustus 2006 @ 19:19
    is het mogelijk om aan 1 submit knop 2 javascriptjes te hangen? zo ja, hoe??
    HuHudinsdag 8 augustus 2006 @ 19:24
    quote:
    Op dinsdag 8 augustus 2006 19:19 schreef Etcetera het volgende:
    is het mogelijk om aan 1 submit knop 2 javascriptjes te hangen? zo ja, hoe??
    Het ene javascript de andere laten aanroepen. Of nog een derde javascript maken dat de eerste twee 1 voor 1 aanroept.
    Etceteradinsdag 8 augustus 2006 @ 19:29
    quote:
    Op dinsdag 8 augustus 2006 19:24 schreef HuHu het volgende:

    [..]

    Het ene javascript de andere laten aanroepen. Of nog een derde javascript maken dat de eerste twee 1 voor 1 aanroept.
    hmmm klinkt logisch maar hoe doe ik dat? ik heb dit script:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    function afhandelen(){

    // Dit stuk script zorgt ervoor dat de ingevoerde naam wordt opgeslagen
    var naamVeld = document.getElementById ("naamVeld");
    var naam = naamVeld.value;
    var naamCell = document.getElementById ("naamCel");
    naamCell.innerHTML = naam;

    // Dit stuk script zorgt ervoor dat het ingevoerde bedrijf wordt opgeslagen
    var bedrijfVeld = document.getElementById("bedrijfVeld");
    var bedrijf = bedrijfVeld.value;
    var bedrijfCell = document.getElementById ("bedrijfCel");
    bedrijfCell.innerHTML = bedrijf;


    //Dit stuk script zorgt ervoor dat het ingevulde adres wordt opgeslagen
    var adresVeld = document.getElementById ("adresVeld");
    var adres = adresVeld.value;
    var adresCell = document.getElementById ("adresCel");
    adresCell.innerHTML = adres;

    //Dit stuk script zorgt ervoor dat de ingevulde cijfers van de postcode worden opgeslagen
    var postcodecijfersVeld = document.getElementById ("postcodeCijfersVeld");
    var postcodecijfers= postcodecijfersVeld.value;
    var postcodecijfersCell = document.getElementById ("postcodecijfersCel");
    postcodecijfersCell.innerHTML = postcodecijfers;

    //Dit stuk script zorgt ervoor dat de ingevulde postcodeletters worden opgeslagen
    var postcodelettersVeld = document.getElementById ("postcodeLettersVeld");
    var postcodeletters = postcodelettersVeld.value;
    var postcodelettersCell = document.getElementById ("postcodelettersCel");
    postcodelettersCell.innerHTML = postcodeletters;

    //Dit stuk script zorgt ervoor dat de ingevulde plaats wordt opgegeslagen
    var plaatsVeld = document.getElementById ("plaatsVeld");
    var plaats = plaatsVeld.value;
    var plaatsCell = document.getElementById ("plaatsCel");
    plaatsCell.innerHTML = plaats;

    // Dit stuk script zorgt ervoor dat het ingevulde telefoonnummer wordt opgeslagen
    var telefoonVeld = document.getElementById ("telefoonVeld");
    var telefoon = telefoonVeld.value;
    var telefoonCell= document.getElementById ("telefoonCel");
    plaatsCell.innerHTML = plaats;

    //Dit stuk script zorgt ervoor dat de ingevulde functie wordt opgeslagen
    var functieVeld = document.getElementById ("functieVeld");
    var functie = functieVeld.value;
    var functieCell = document.getElementById ("functieCel");
    functieCell.innerHTML = functie

    //Dit stuk script zorgt ervoor dat de ingevulde extra informatie wordt opgeslagen
    var infoVeld = document.getElementById ("infoVeld");
    var informatie = infoVeld.value;
    var infoCell = document.getElementById ("inforCel");
    infoCell.innerHTML = informatie;

    return false;
    }


    en ik wil dat de inhoud van de cellen gecontroleerd wordt met dit script:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function controle()

    {

    if              
    (
    document.contact.naamVeld.value == "" ||
    document.contact.bedrijfVeld.value == "" ||
    document.contact.adresVeld.value == "" ||
    document.contact.postcodeLettersVeld.value == "" ||
    document.contact.postcodeCijfersVeld.Value == "" ||            
    document.contact.plaatsVeld.Value == "" ||
    document.contact.telefoonVeld.Value == "" ||                
    document.contact.functieVeld.Value == "" ||
    document.contact.infoVeld.Value == ""               
    )
    {
    alert('Vul alle velden in aub.');
    return false;                                
    }
    return true;                                
    }
    de scriptjes werken ( ) maar nu wil ik nog dat ze tegelijkertijd werken zeg maar. dat je 1x klikt en verder geen gezeik hebt als het ware. dus hoe laat ik het ene javascript (de controle) de andere (de afhandeling) oproepen??
    HuHudinsdag 8 augustus 2006 @ 19:32
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function doe_alles()
    {
      if(controle())
      {
        afhandelen();
        return true;
      }
      else
      {
        return false;
      }
    }


    Zoiets?
    Etceteradinsdag 8 augustus 2006 @ 19:33
    quote:
    Op dinsdag 8 augustus 2006 19:32 schreef HuHu het volgende:

    [ code verwijderd ]

    Zoiets?
    ik ga proberen iig bedankt (en tot over een paar uur snap nog steeds niet veel van JS)
    HuHudinsdag 8 augustus 2006 @ 19:34
    quote:
    Op dinsdag 8 augustus 2006 19:33 schreef Etcetera het volgende:

    [..]

    ik ga proberen iig bedankt (en tot over een paar uur snap nog steeds niet veel van JS)
    Ik heb het nog even aangepast. Ik weet niet wat je wil doen nadat het formulier is afgehandeld? Moet het formulier dan gesubmit worden, of niets gebeuren?

    Als er niets moet gebeuren, dan moeten beide returns false geven en kan je deze dus onderaan neerzetten in doe_alles().
    Etceteradinsdag 8 augustus 2006 @ 19:37
    quote:
    Op dinsdag 8 augustus 2006 19:34 schreef HuHu het volgende:

    [..]

    Ik heb het nog even aangepast. Ik weet niet wat je wil doen nadat het formulier is afgehandeld? Moet het formulier dan gesubmit worden, of niets gebeuren?

    Als er niets moet gebeuren, dan moeten beide returns false geven en kan je deze dus onderaan neerzetten in doe_alles().
    je was me een stap voor, het moet namelijk leesbaar zijn onderaan m'n formulier en dat was niet het geval. ff aanpassen

    edit: hmmm het werkt nog niet helemaal, de pagina wordt meteen gerefreshed ik zie ook geen fouten in de js console van ff, mss dat ik een return false verkeerd heb neergezet
    HuHudinsdag 8 augustus 2006 @ 19:44
    Als de pagina niet moet refreshen moet je dit doen:

    1
    2
    3
    4
    5
    6
    7
    8
    function doe_alles()
    {
      if(controle())
      {
        afhandelen();
      }
      return false;
    }
    Etceteradinsdag 8 augustus 2006 @ 19:54
    mede dankzij jou werkt het

    had bij onsubmit nog niet return staat
    hbruyndonderdag 10 augustus 2006 @ 13:48
    NOGMAALS:

    Wie heeft er verstand van javascript en wil mij, evt. tegen betaling, helpen?

    Het volgende probleem.
    Ik heb een script wat, bij het klikken op een menuitem, een foto fade naar de foto die bij het menuitem hoort. Nu werkt dit prima als je maar wacht met op het volgende menuitem klikken totdat de fotofade volledig is uitgevoerd. Klik je eerder, dan raakt het script in de war en gaan volgende fotofades niet goed meer.

    De site waar de fout te zien is is:

    w w w . k a t j a w o g n u m . n l

    Alvast bedankt
    HuHuwoensdag 16 augustus 2006 @ 11:10
    Ik wil op een pagina alle afbeeldingen met een-foute-url vervangen door een plaatje met een-goede-url. Daarvoor had ik dit script gemaakt, maar dat werkt niet goed:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var plaatjes = document.images;
    var aantal = plaatjes.length;

    for(i=0;i<=aantal;i++)
    {
      //Vervang foute plaatje voor een goede.
      var plaatje = plaatjes[i];

      if(plaatje.src == "de-foute-url")
      {
        plaatje.src = "de-goede-url";
      }
    }


    Maar nu krijg ik: plaatje has no properties. Heeft iemand een suggestie of idee hoe dit goed te doen?
    t-x-mwoensdag 16 augustus 2006 @ 11:20
    quote:
    Op woensdag 16 augustus 2006 11:10 schreef HuHu het volgende:
    Ik wil op een pagina alle afbeeldingen met een-foute-url vervangen door een plaatje met een-goede-url. Daarvoor had ik dit script gemaakt, maar dat werkt niet goed:
    [ code verwijderd ]

    Maar nu krijg ik: plaatje has no properties. Heeft iemand een suggestie of idee hoe dit goed te doen?
    Bij mij werkt het gewoon. Let wel op dat je het script pas laad nadat de pagina(en dus de plaatjes) is geladen, dus ergens onder aan of in je <body onload="vervang_plaatjes()"> ofzo?
    1
    2
    3
    4
    5
    6
    <img src="./home.gif id="plaatje1">
    <script type="javascript">
      document.getElementById('plaatje1').src = "home2.gif"; //werkt dus wel
      document.getElementById('plaatje2').src = "test2.gif"; //werkt dus niet
    </sript>
    <img src="test.gif" id="plaatje2">
    HuHuwoensdag 16 augustus 2006 @ 11:41
    quote:
    Op woensdag 16 augustus 2006 11:20 schreef t-x-m het volgende:

    [..]

    Bij mij werkt het gewoon. Let wel op dat je het script pas laad nadat de pagina(en dus de plaatjes) is geladen, dus ergens onder aan of in je <body onload="vervang_plaatjes()"> ofzo?
    [ code verwijderd ]


    Ik had 'm helemaal bovenin de pagina gezet. Naar onderen verplaatst en het werkt perfect.

    Dank je.
    t-x-mwoensdag 16 augustus 2006 @ 11:51
    quote:
    Op woensdag 16 augustus 2006 11:41 schreef HuHu het volgende:

    [..]



    Ik had 'm helemaal bovenin de pagina gezet. Naar onderen verplaatst en het werkt perfect.

    Dank je.
    Je kunt hem dus ook wel bovenin laten staan maar dan moet je er een functie van maken. Die je dan weer start in je body onload. Javascript staat een stuk mooier in je head dan ergens anders in je pagina
    HuHuwoensdag 16 augustus 2006 @ 12:38
    quote:
    Op woensdag 16 augustus 2006 11:51 schreef t-x-m het volgende:

    [..]

    Je kunt hem dus ook wel bovenin laten staan maar dan moet je er een functie van maken. Die je dan weer start in je body onload. Javascript staat een stuk mooier in je head dan ergens anders in je pagina
    I know, maar de <body> aanpassen gaat helaas niet.

    Dus 't moet wel zo.
    SuperRembowoensdag 16 augustus 2006 @ 13:09
    Je hoeft niet de body aan te passen.

    1
    2
    3
    window.onload = function() {
       // Deze code wordt uitgevoerd als de pagina geladen is.
    }
    HuHuwoensdag 16 augustus 2006 @ 13:10
    quote:
    Op woensdag 16 augustus 2006 13:09 schreef SuperRembo het volgende:
    Je hoeft niet de body aan te passen.
    [ code verwijderd ]
    Ah... dat is nog makkelijker.

    Bedankt.
    Swetseneggerzaterdag 26 augustus 2006 @ 16:55
    Hoi,

    Ik probeer de inhoud van een textarea in een cookie te proppen.
    Dat gaat ookprima, behalve newlines. De tekst tot aan de eerste newline staat in het cookie, alle tekst daarachter niet.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <html>
    <head></head>
    <body>
      <form>
        <textarea name="remark" cols="45" rows="7"></textarea>
        <input type="button" id="bestellen" value="Bestellen" onClick="document,cookie='remark='+form.remark.value;document.write(form.remark.value);" />
      </form>
    </body>
    </html>

    De output van document.write is wel correct. Tenminsten, in de source zie ik de newlines staan.

    Kan ik in een cookie geen newlines opslaan?

    -edit opgelost
    1onClick="document.cookie='remark='+escape(form.remark.value);" />


    [ Bericht 14% gewijzigd door Swetsenegger op 26-08-2006 18:51:46 ]
    fokME2zaterdag 26 augustus 2006 @ 20:37
    Je kan in een cookie zover ik weet inderdaad geen newlines opslaan.

    Ik vond deze website die wat PHP en Javascript functies naast elkaar gooit (implode en explode bijvoorbeeld). Misschien dat je daar wat mee kunt.
    Swetseneggerzaterdag 26 augustus 2006 @ 21:08
    quote:
    Op zaterdag 26 augustus 2006 20:37 schreef fokME2 het volgende:
    Je kan in een cookie zover ik weet inderdaad geen newlines opslaan.

    Ik vond deze website die wat PHP en Javascript functies naast elkaar gooit (implode en explode bijvoorbeeld). Misschien dat je daar wat mee kunt.
    Je kan dus wel newlines opslaan in een cookie. Javasciprt kan blijkbaar geen newlines in vars aan. als je ze escaped werkt het prima
    fokME2zaterdag 26 augustus 2006 @ 21:18
    Hoe escape je die dan mbv javascript? (nog niet veel ervaring met javascript)
    Swetseneggerzaterdag 26 augustus 2006 @ 21:58
    escape(var) of gewoon backslashen
    ralfiezaterdag 26 augustus 2006 @ 22:08
    quote:
    Op zaterdag 26 augustus 2006 21:18 schreef fokME2 het volgende:
    Hoe escape je die dan mbv javascript? (nog niet veel ervaring met javascript)
    1escape ( string )



    EDIT: ah, te laat

    [ Bericht 9% gewijzigd door ralfie op 26-08-2006 22:15:48 ]
    fokME2zaterdag 26 augustus 2006 @ 22:33
    Enthousiasme .
    splendorvrijdag 1 september 2006 @ 12:01
    wanneer ik dit gebruik:
    document.frmChannelOptions.radio1.length
    krijg ik netjes terug dat ik 3 radio buttons heb met allemaal de naam radio1, en dus kan ik aan de hand van
    document.frmChannelOptions.radio1[2].value
    bijvoorbeeld uit de 2e radiobutton de value halen.

    maar nu wil ik met een while loopje die radio1 veranderen in radio2, radio3, etc.

    dus ik probeer
    var radiolala = 'radio' + i;

    en vervolgens
    document.frmChannelOptions.radiolala.length

    maar dat pakt ie niet, waarom niet? Hoe moet ik in zo'n document.frmChannelOptions. een variable stoppen?
    als ik alert radiolala doe komt er wel gewoon netjes radio1 of radio2 uit, enz.

    bvd.
    SuperRembozondag 3 september 2006 @ 21:01
    1
    2
    var radiolala = 'radio' + i;
    document.frmChannelOptions.elements[radiolala].length
    splendorzondag 3 september 2006 @ 23:58
    Bedankt, weer zo'n simpele oplossing maar je moet het maar net weten of weten hoe ernaar te zoeken..
    SuperRembomaandag 4 september 2006 @ 07:59
    Het is een feature van javascript: je kunt een property van een object ook aanspreken als een element van een array:

    1
    2
    3
    var form = document.forms['myForm'];// array notatie
    var form = document.forms.myForm;// property notatie
    var form = document.myForm;// verkorte notatie
    marcb1974dinsdag 5 september 2006 @ 17:59
  • <form name="form2">
  • <input type="radio" name="lbo" value="lbo">LBO<p>
  • <input type="radio" name="mavo" value="mavo">MAVO<p>
  • <input type="radio" name="havo" value="havo">HAVO<p>
  • <input type="radio" name="vwo" value="vwo">VWO<p>
  • <input type="radio" name="mbo" value="mbo">MBO<p>
  • <input type="radio" name="overig" value="overig">Overig<p>
  • </form>


    Ik heb bovenstaande code. Hoe krijg ik hem nou zover dat er maar 1 selecteerbaar is? Ik kan er nu meer selecteren en dat is niet de bedoeling.
  • SuperRembodinsdag 5 september 2006 @ 18:10
    Allemaal dezelfde name geven. Simpel
    marcb1974dinsdag 5 september 2006 @ 18:25
    quote:
    Op dinsdag 5 september 2006 18:10 schreef SuperRembo het volgende:
    Allemaal dezelfde name geven. Simpel
    Logisch wel ja

    Sorry
    Sitethiefwoensdag 6 september 2006 @ 11:23
    Kort vraagje:

    1
    2
    3
    4
       <!--
          if (location=="http://www.becom.nl/")
               location="http://www.koldijkbv.nl/becom.html"
       //-->


    Dat zorgt ervoor dat je een andere pagina te zien krijgt als dat je refer is ?
    Darkomenwoensdag 6 september 2006 @ 12:28
    window.location=

    maar dan klopt het
    marcb1974zaterdag 9 september 2006 @ 18:03
    Ik moet van een formulier controleren of een aantal velden is ingevuld. Nu heb ik de volgende code:

    function controleer(){
    // controleer of de gebruiker een waarde heeft ingevoerd
    if (document.form1.naam.value == ''){
    //nee
    alert('Vul alle verplichte velden in aub');
    return false
    }
    else{
    popup();
    }
    }

    Dit is de controle op het eerste veld. Als ik nu meer velden wil controleren moet ik volgens mij iets krijgen van:
    if (document.form1.naam.value == '' || document.form1.voorletters.value = ''){

    Alleen als ik het cursieve deel toevoeg gaat het fout en krijg ik foutmeldingen.
    Wat doe ik fout?
    ralfiezaterdag 9 september 2006 @ 18:26
    dubbele = teken gebruiken, geen enkel (== vergelijken, = toewijzen van variabele)
    marcb1974zaterdag 9 september 2006 @ 22:31
    quote:
    Op zaterdag 9 september 2006 18:26 schreef ralfie het volgende:
    dubbele = teken gebruiken, geen enkel (== vergelijken, = toewijzen van variabele)
    Dat had ik moeten zien ja
    thx
    marcb1974zaterdag 9 september 2006 @ 22:41
    quote:
    <select name="landen">
    <option selected>Kies uw land
    <option value="Australie">Australie
    <option value="Belgie">Belgie
    <option value="Canada">Canada
    <option value="Denemarken">Denemarken
    <option value="Duitsland">Duitsland
    <option value="Engeland">Engeland
    <option value="Frankrijk">Frankrijk
    <option value="Luxemburg">Luxemburg
    <option value="Nederland">Nederland
    <option value="Nieuw-Zeeland">Nieuw-Zeeland
    </select>
    Hoe kan ik hierbij in een functie controleren of er iets is geselecteerd, en er dus niet de standaard waarde nog staat?

    Ik heb nu:
    quote:
    function land(){
    // controleer of de gebruiker een waarde heeft ingevoerd
    if (document.form1.land.value == true){
    //nee
    alert('Vul alle verplichte velden in aub');
    return false;
    }
    }
    maar dat is duidelijk niet goed.
    Darkomenzondag 10 september 2006 @ 11:39
    1
    2
    3
    4
    5
    <select name="landen" id="landen">
    if(document.getElementById('landen').selectedIndex=='0')
    {
    //Something
    }
    marcb1974zondag 10 september 2006 @ 11:51
    quote:
    Op zondag 10 september 2006 11:39 schreef Darkomen het volgende:

    [ code verwijderd ]
    Thx,

    [ Bericht 21% gewijzigd door marcb1974 op 10-09-2006 22:30:13 ]
    Knutzondag 10 september 2006 @ 12:02
    Ik ben bezig met een stukje js die een textarea aanmaakt in een bepaalde div. Dat werkt allemaal goed maar nu wil ik dus kijken of de textarea al bestaat. Als hij niet bestaat een nieuwe aanmaken en anders negeren.
    1
    2
    3
    obj=document.getElementById('textarea'+ reactId);
        alert(typeof(obj));    
        if (typeof(obj)!='undefined'){

    Dit zou (Volgens mij) moeten werken maar ik krijg altijd "object" uit de alert...
    SuperRembozondag 10 september 2006 @ 22:23
    Waarom typeof 'object' geeft snap ik niet helemaal. Het is wel een object, maar zonder property's.
    Wat wel gewoon werkt is dit:

    1
    2
    3
    4
    var obj = document.getElementById('textarea'+ reactId);
    if (!obj) {
       // create textarea
    }



    (Hier gaat nog iets mis met de code tag styling, maar dan alleen in edit preview mode)

    [ Bericht 4% gewijzigd door SuperRembo op 10-09-2006 23:46:52 ]
    rickmansdonderdag 14 september 2006 @ 20:14
    ik zit met een dufprobleem :{.
    Ik gebruik de waarde van een textarea om door te geven naar een phpfile via een ajaxcall, alleen verdwijnt het teken '+' als sneeuw voor de zon. Iemand een idee om het op te lossen?

    js:
    1
    2
    3
    4
    var editText = encodeURIComponent(document.getElementById(newobjId).value);

    # in onderstaande functie is het derde argument de post string voor het xmlhttp request
    ahahCall('url', objId, 'action=editReact&reactId='+reactId+'&reactArea='+ editText, 'returnText');

    In php doe ik het volgende:
    1
    2
    3
    <?php
    $_POST
    ["reactArea"]= urldecode($_POST["reactArea"]);
    ?>
    SuperRembodonderdag 14 september 2006 @ 21:41
    Je doet in PHP wel een urldecode(), maar je hebt de data niet geurlencode. In javascript kan dat met encodeURIComponent . Die functie bestaat trouwens niet in oudere versies van IE (versie 5 en lager als ik het goed heb). Soms wordt hier de escape() functie gebruikt, maar die gebruikt een andere encoding.
    rickmansdonderdag 14 september 2006 @ 21:58
    quote:
    Op donderdag 14 september 2006 21:41 schreef SuperRembo het volgende:
    Je doet in PHP wel een urldecode(), maar je hebt de data niet geurlencode. In javascript kan dat met encodeURIComponent . Die functie bestaat trouwens niet in oudere versies van IE (versie 5 en lager als ik het goed heb). Soms wordt hier de escape() functie gebruikt, maar die gebruikt een andere encoding.
    *kuch* die functie staat er wel .
    SuperRembodonderdag 14 september 2006 @ 22:06
    ai, ik ben blind

    Bij nader inzien is de urldecode() in php gewoon overbodig. Dat doet php zelf al bij het omzetten van de request naar de $_POST en $_GET array's.
    rickmansdonderdag 14 september 2006 @ 22:09
    dat was hem .
    mscholzondag 17 september 2006 @ 12:57
    ben ik weer met vast een simpele vraag:
    ik heb een dropdownlist waar 4 waardes in staan met de volgende value's :
    AT, FG, P, C
    voor elk van deze value is ook een gelijknamige DIV beschikbaar

    nu kan ik d.m.v. de volgende code:
    1<select name="add_type" onchange="document.getElementById(this.value).style.display = 'Block';document.getElementById(this.value).style.visibility = 'visible'">

    netjes de bijbehorende div zichtbaar maken maar ik wil dat hij dan ook de andere div's die zichtbaar zouden zijn ook sluit...

    ik heb het zelf ooit op deze manier opgelost in een ander script:
    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
    function cloack(waarde)
    {
     if(waarde == "yes")
        {
          document.getElementById('layer1').style.display = 'None';
          document.getElementById('layer2').style.visibility = 'visible';
          document.getElementById('layer2').style.display = 'Block';
          document.getElementById('command').style.display = 'None';
       }
     else if(waarde == "no")
        {
          document.getElementById('layer2').style.display = 'None';
          document.getElementById('layer1').style.visibility = 'visible';
          document.getElementById('layer1').style.display = 'Block';
          document.getElementById('command').style.display = 'None';
       }
     else
        {
          document.getElementById('layer2').style.visibility = 'hidden';
          document.getElementById('layer2').style.display = 'None';
          document.getElementById('layer1').style.visibility = 'hidden';
          document.getElementById('layer1').style.display = 'None';
          document.getElementById('command').style.display = 'None';
       }
    }


    maar ik mag aannemen dat het simpeler moet kunnen?
    SuperRembomaandag 18 september 2006 @ 22:35
    Het heeft in ieder geval geen zin om iets wat je niet laat zien (display none) ook nog eens te verbergen (visibility hidden). Het makkelijkst is om een lijstje met id's te maken waarvan je er altijd maar 1 tegelijk laat zien.

    1
    2
    3
    4
    5
    6
    7
    var divs = ['AT', 'FG', 'P', 'C'];

    function showDiv(id) {
       for (var i = 0; i < divs.length; i++) {
          document.getElementById(divs[i]).style.display = (divs[i] == id ? 'block' : 'none');
       }
    }


    Je zou die divs ook allemaal in een andere div kunnen zetten. Dan kan je door de divs heen lopen zonder dat je de id's in een lijstje hoeft te zetten.
    Desdinovadinsdag 19 september 2006 @ 13:17
    1
    2
    3
    4
    5
    6
    7
    <input type="checkbox" name="allowed[]" value="2">
    <input type="checkbox" name="allowed[]" value="2">
    <input type="checkbox" name="allowed[]" value="2">
          <input class="button_140" type="button" value="Toevoegen"
             onclick="javascript:
                if (!document.new_page.allowed[].checked){ popupalert('allowed'); }
                else { this.form.submit(); }">


    Dit is een stukje van mijn code. Dit staat in form met name new_page.

    Ik wil graag dat hij een melding geeft als geen van de allowed checked is.. het aantal allowed is variabel. Hoe kan ik dit het beste aanpakken?
    Darkomendinsdag 19 september 2006 @ 15:51
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function check_boxes(field)
    {
    var non_checked='0';
    for (i = 0; i < field.length; i++)
       if(field[i].checked = false)
     { var non_checked = '1';
     }
    }
    if(non_checked)
    {
    alert ('je hebt niks geselecteerd');
    }
    }

    onClick="check_boxes(document.new_page.allowed[])">


    Zoiets, niet gechecked trouwens
    SuperRembodinsdag 19 september 2006 @ 16:02
    Dit gaat natuurlijk niet werken:
    1document.new_page.allowed[].checked


    1var allowed = document.forms['new_page'].elements['allowed[]'];

    Hiermee krijg je een array met al je allowed[] checkboxen. Daar moet je dan even doorheen loopen om te kijken of er een checked is.
    Desdinovadinsdag 19 september 2006 @ 16:30
    tenks met de combinatie kom ik in de goede richting. rest gaat wel lukken!

    [edit]
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       function check_boxes(){
          var non_checked2 = document.forms['new_page'].elements['allowed[]'];      
          for (i = 0; i < non_checked2.length; i++){
             if(non_checked2[i].checked == false){
                var non_checked = '1';
             }
             else {
                return true;
             }
          }
          return false;
       }


    dit is hem geworden. werkt goed

    [edit2]
    1
    2
    3
    4
    5
    6
    7
    8
    9
       function check_boxes(){
          var non_checked2 = document.forms['new_page'].elements['allowed[]'];      
          for (i = 0; i < non_checked2.length; i++){
             if(non_checked2[i].checked == true){
                return true;
             }
          }
          return false;
       }


    en zo istie zonder de dingen die dr niet in hoeven

    [ Bericht 55% gewijzigd door Desdinova op 19-09-2006 16:46:33 ]
    Darkomendinsdag 19 september 2006 @ 16:39
    Edit: zie dat je zelf al wat hebt
    SuperRembodinsdag 19 september 2006 @ 18:39
    " == true" is natuurlijk overbodig.
    Siegfriedwoensdag 20 september 2006 @ 00:11
    Hoe zorg ik ervoor dat als ik in een dropdown menu een bepaalde optie selecteer (bijvoorbeeld: "Anders, namelijk:") dat er dan een eerder disabled textfield enabled wordt.

    Als je dan weer een andere optie kiest dan moet ie weer disabled worden.

    Ik heb nu dit, maar hij enabled niet meer nadat hij disabled is..

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <script type="text/JavaScript">
    <!--
    function disableField(targ,selObj,restore)
    {
       if (selObj != 1)
       {
          document.form1.emailaddress.disabled=true;
       }
       else
       {
          document.form1.emailaddress.disabled=false;
       }
    }
    //-->
    </script>

        <select name="select" onchange="disableField('parent',this,0)">
          <option value="1">Zelf</option>
          <option value="0">Iedereen</option>
          <option value="0" selected="selected">Abonnees</option>
        </select>
        <input type="text" name="emailaddress"/>
    #ANONIEMwoensdag 20 september 2006 @ 08:30
    quote:
    Op woensdag 20 september 2006 00:11 schreef Siegfried het volgende:
    Hoe zorg ik ervoor dat als ik in een dropdown menu een bepaalde optie selecteer (bijvoorbeeld: "Anders, namelijk:") dat er dan een eerder disabled textfield enabled wordt.

    Als je dan weer een andere optie kiest dan moet ie weer disabled worden.

    Ik heb nu dit, maar hij enabled niet meer nadat hij disabled is..
    [ code verwijderd ]
    Je moet de waarde van de dropdown meegeven aan je disableFields() functie, en op basis daarvan gaan togglen.
    CraZaaywoensdag 20 september 2006 @ 08:54
    Probeer eens iets als this.value mee te sturen naar je method, ipv alleen this.
    SuperRembowoensdag 20 september 2006 @ 15:29
    1
    2
    3
    function disableField(el) {
       document.forms['form1'].elements['emailaddress'].disabled = (el.value == '1');
    }


    En dan aanroepen met onchange="disableField(this)"
    Siegfrieddonderdag 21 september 2006 @ 09:41
    Ik wil em eigenlijk graag aanroepen met de naam van het textfield, die ik dan als variable kan gebruiken binnen de functie.. Maar dat krijg ik maar niet werkend:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    function disableField(field)
    {
          document.form1.+field.value+.disabled=true;
    }

    function enableField(field)
    {
          document.form1.+field.value+.disabled=true;
    }


    1
    2
    3
    4
    5
    6
    7
    8
    9
    <p>Verzend-adres: 
        <select name="select">
          <option onclick="javascript:disableField(sender-adress)">info@domein.nl</option>
          <option onclick="javascript:disableField(sender-adress)">noreply@domein.nl</option>
          <option onclick="javascript:disableField(sender-adress)">nieuwsbrief@domein.nl</option>
          <option onclick="javascript:enableField(sender-adress)">Anders..</option>
        </select>
        <input type="text" name="sender-address"/>
      </p>


    Op deze manier moet het toch ook kunnen? Vast niet met de code die ik geschreven heb, maar ik ben dan ook nog niet zo thuis in Javascript..
    Desdinovadonderdag 21 september 2006 @ 09:48
    .value moet zoiezo weg want disabled is geen value
    verder kunnen de plusjes ook weg want . is al plus

    denk ik
    #ANONIEMdonderdag 21 september 2006 @ 09:55
    plus dat je op een option geen onClick kan doen.

    Je moet de value doorgeven in de onclick functie. Pas in je javascript ga je diezelfde value vergelijken en op basis daarvan ga je togglen.

    [ Bericht 63% gewijzigd door #ANONIEM op 21-09-2006 09:56:13 ]
    Siegfrieddonderdag 21 september 2006 @ 09:56
    Nou, ik had het eerder werkend met onClick.
    Maar dat was slechts voor 1 textfiedl. Nu wilde ik hem herbruikbaar maken..
    #ANONIEMdonderdag 21 september 2006 @ 09:57
    quote:
    Op donderdag 21 september 2006 09:56 schreef Siegfried het volgende:
    Nou, ik had het eerder werkend met onClick.
    Maar dat was slechts voor 1 textfiedl. Nu wilde ik hem herbruikbaar maken..
    Ja, en dat kan met de code van SuperRembo!
    Siegfrieddonderdag 21 september 2006 @ 10:01
    quote:
    Op donderdag 21 september 2006 09:57 schreef Scorpie het volgende:

    [..]

    Ja, en dat kan met de code van SuperRembo!
    Hoe dan?
    Want het form en element staan er vast in..

    Hoe maak ik dat variabel?
    Desdinovadonderdag 21 september 2006 @ 11:17
    je zou onchange kunnen gebruiken in je select, met als value this.value. moet je wel je options een value meegeven
    #ANONIEMdonderdag 21 september 2006 @ 11:23
    quote:
    Op donderdag 21 september 2006 10:01 schreef Siegfried het volgende:

    [..]

    Hoe dan?
    Want het form en element staan er vast in..

    Hoe maak ik dat variabel?
    element kan je meegeven, form kan je vast ook wel wat mee verzinnen, mits je maar google gebruikt...
    Siegfrieddonderdag 21 september 2006 @ 11:40
    quote:
    Op donderdag 21 september 2006 11:23 schreef Scorpie het volgende:

    [..]

    element kan je meegeven, form kan je vast ook wel wat mee verzinnen, mits je maar google gebruikt...
    Denk niet dat ik niet google en niet zelf probeer, maar als je niet waar op te zoeken of wat te proberen dan vind je bar weinig kan ik je vertellen
    #ANONIEMdonderdag 21 september 2006 @ 12:15
    quote:
    Op donderdag 21 september 2006 11:40 schreef Siegfried het volgende:

    [..]

    Denk niet dat ik niet google en niet zelf probeer, maar als je niet waar op te zoeken of wat te proberen dan vind je bar weinig kan ik je vertellen
    http://www.google.nl/search?hl=nl&q=javascript+disable+field&meta=

    Google; Javascript disable fields.

    Duizenden hits.
    Desdinovadonderdag 21 september 2006 @ 13:25
    quote:
    Op donderdag 21 september 2006 12:15 schreef Scorpie het volgende:

    [..]

    http://www.google.nl/search?hl=nl&q=javascript+disable+field&meta=

    Google; Javascript disable fields.

    Duizenden hits.
    das niet echt een relevante search he hoeveel items zou je af moeten gaan om te vinden wat hij zoekt? en je kan wel op elke vraag gaan roepen dat ze moeten googlen. vooral in het begin is het beter om mensen met wat extra uitleg te helpen zodat ze weten wat ze aan het doen zijn ipv zomaar scripts overnemen van een voorbeeld, dan hebben ze de volgende keer hetzelfde probleem. nofi
    Siegfrieddonderdag 21 september 2006 @ 15:05
    quote:
    Op donderdag 21 september 2006 12:15 schreef Scorpie het volgende:

    [..]

    http://www.google.nl/search?hl=nl&q=javascript+disable+field&meta=

    Google; Javascript disable fields.

    Duizenden hits.
    Hoe ik velden moet disablen weet ik wel, maar hoe ik dit dynamisch krijg; dat was de vraag.

    @Desdinova: Thanks, zo denk ik er ook over.
    Op andere gebieden ben ik ook niet te beroerd om mensen te helpen.
    #ANONIEMdonderdag 21 september 2006 @ 15:29
    *Zucht* Nou vooruit dan maar

    Even wat code gejat van mijn werk:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    /**
     * disableFields is used to disable the form fields.
     * example: checkThis(this, 'fieldName',resetValue)
     *
     * @param thisField = the Object that calls the function, for reference.
     * @param fieldNames String defining the field that needs to be disabled
     * @param reset Boolean indicating wether or not the fieldName value should be set before disabling.
     * @param defaultValue value to which the fieldname should be set before disabling.
     * @author Scorpie
     */
    function disableFields(thisField,fieldNames,reset,defaultValue,formName,index)
    {
      // split fieldNames into an array for further processing
       var fieldNames_array = fieldNames.split(",");

      if(thisField.checked==true)
      {
       for(i=0;i<fieldNames_array.length;i++){
       
           // this method is used so that in the future we can easily extend it with other field types for reuse.
          if(reset == true){
           if(document.getElementById(fieldNames_array[i]).getAttribute("type") == "select-one"){
                
             // default value to which the option select box should point at when disabling. 
             // -1 is default, indicating that it will jump back to its original value.
           document.getElementsByName(fieldNames_array[i])[index].selectedIndex = -1;
           document.getElementsByName(fieldNames_array[i])[index].setAttribute("value","");
           }
          }
        document.getElementsByName(fieldNames_array[i])[index].disabled = true;
        }
      } else {
         for(i=0;i<fieldNames_array.length;i++){
          document.getElementsByName(fieldNames_array[i])[index].disabled = false;
          document.getElementsByName(fieldNames_array[i])[index].setAttribute("value","");
       }
      }
    }


    en als aanroep bijvoorbeeld:

    disableFields(this,'type1,type2',true,'-1','type3',"+index+")";

    Dit is de wat uitgebreidere versie waarin je meerdere velden kan disablen met een comma separated string te gebruiken.

    [ Bericht 1% gewijzigd door WyriHaximus op 07-04-2010 10:23:44 ]
    Desdinovadonderdag 21 september 2006 @ 16:25
    ben trots op je scorpie
    #ANONIEMdonderdag 21 september 2006 @ 16:32
    quote:
    Op donderdag 21 september 2006 16:25 schreef Desdinova het volgende:
    ben trots op je scorpie
    SuperRembodonderdag 21 september 2006 @ 18:32
    1
    2
    document.getElementsByName(fieldNames_array[i])[index].selectedIndex = -1;
    document.getElementsByName(fieldNames_array[i])[index].setAttribute("value","");

    Dit is niet bepaald optimaal. getElementsByName is blijkbaar een user defined function, daar zal ook aardig wat overhead in zitten. Deze functie wordt twee keer aangeroepen met dezelfde parameter, dat betekend dat er een keer onnodig door de DOM wordt gezocht.
    Ook vreemd dat setAttribute wordt gebruikt om de value te zetten, waarom zou je dat niet gewoon via de value property doen?

    Geen lekker scriptje.
    #ANONIEMdonderdag 21 september 2006 @ 18:38
    quote:
    Op donderdag 21 september 2006 18:32 schreef SuperRembo het volgende:

    [ code verwijderd ]

    Dit is niet bepaald optimaal. getElementsByName is blijkbaar een user defined function, daar zal ook aardig wat overhead in zitten. Deze functie wordt twee keer aangeroepen met dezelfde parameter, dat betekend dat er een keer onnodig door de DOM wordt gezocht.
    Ook vreemd dat setAttribute wordt gebruikt om de value te zetten, waarom zou je dat niet gewoon via de value property doen?

    Geen lekker scriptje.
    getElementsByName is GEEN user defined function, maar gewoon onderdeel van Javascript.

    http://msdn.microsoft.com(...)etelementsbyname.asp

    getElementsByName is dus niks anders dan getElementByName, maar dan met het verschil dat er meerdere objecten worden teruggegeven bij de aanroep, dit omdat wij op onze pagina`s meerdere selectboxen (in dit geval ) gebruiken met dezelfde naam.

    Het klopt als je zegt dat er twee keer een call wordt gedaan naar deze functie, aangezien je twee attributen van deze elementen wil zetten: het attribuut "disabled' en het attribuut 'selectedIndex'. Volgens mij kan dit niet anders, alhoewel ik het mis kan hebben.


    Daarnaast geef je wel een mooie opmerking met "geen lekker scriptje", maar een alternatief posten doe je niet?

    [ Bericht 8% gewijzigd door #ANONIEM op 21-09-2006 18:40:42 ]
    Siegfrieddonderdag 21 september 2006 @ 18:40
    @ Scorpie: Thanks! Ik ga eens kijken of ik het aan de praat krijg

    @ SuperRembo: Maar hoe krijg ik mijn enkel regelig scriptje dan werkend, want dat zou toch moeten kunnen neem ik aan?
    SuperRembodonderdag 21 september 2006 @ 22:14
    quote:
    Op donderdag 21 september 2006 18:38 schreef Scorpie het volgende:
    getElementsByName is GEEN user defined function, maar gewoon onderdeel van Javascript.
    Ah, foutje van mij. Maar waarom wordt dan alleen het element met die ene index gedisabled? Vaag.
    quote:
    Het klopt als je zegt dat er twee keer een call wordt gedaan naar deze functie, aangezien je twee attributen van deze elementen wil zetten: het attribuut "disabled' en het attribuut 'selectedIndex'. Volgens mij kan dit niet anders, alhoewel ik het mis kan hebben.
    Wat dacht je er van om een variabele te gebruiken?
    #ANONIEMvrijdag 22 september 2006 @ 08:17
    quote:
    Op donderdag 21 september 2006 22:14 schreef SuperRembo het volgende:

    [..]

    Ah, foutje van mij. Maar waarom wordt dan alleen het element met die ene index gedisabled? Vaag.
    [..]

    Wat dacht je er van om een variabele te gebruiken?
    Lieve schat
    Met getElementsById doe je niks anders dan de bewerking op al die objecten toe te passen dus als ik .disabled doe en getElementsById geeft 3 objecten terug, dan voert hij de disabled uit op 3 objecten

    Een variabele zou denk ik niet werken omdat je meerdere objecten dan in 1 var gaat duwen?

    Magoed, ontopic dan maar weer denk?
    SuperRembovrijdag 22 september 2006 @ 12:00
    On topic: er klopt niets van wat je zegt.

    getElementsById bestaat niet, je bedoelt waarschijnlijk getElementsByName.
    Een id hoort in html uniek te zijn, dus getElementById geeft altijd 1 element terug (of null als het element niet bestaat). Een name hoeft niet uniek te zijn, daarom geeft getElementsByName altijd een array terug. Alle elementen in die array in 1 keer op disabled zetten door 1 keer een property te zetten werkt niet.
    #ANONIEMvrijdag 22 september 2006 @ 12:11
    quote:
    Op vrijdag 22 september 2006 12:00 schreef SuperRembo het volgende:
    On topic: er klopt niets van wat je zegt.

    getElementsById bestaat niet, je bedoelt waarschijnlijk getElementsByName.
    Een id hoort in html uniek te zijn, dus getElementById geeft altijd 1 element terug (of null als het element niet bestaat). Een name hoeft niet uniek te zijn, daarom geeft getElementsByName altijd een array terug. Alle elementen in die array in 1 keer op disabled zetten door 1 keer een property te zetten werkt niet.
    Sorry, het was nog vroeg
    Ik bedoel idd getElementsByName, excuses.

    En idd, hij zet hem niet in 1 keer allemaal op disabled, daarom gebruik ik er ook een loop omheen.

    Was een beetje aan het slapen denk

    Daarnaast zie ik dat het ook met getElementById zou kunnen, maar op dit moment ben ik te lui dat op me werk aan te passen

    [ Bericht 10% gewijzigd door #ANONIEM op 22-09-2006 12:19:30 ]
    mscholzaterdag 23 september 2006 @ 15:52
    ik probeer m.b.v. JS een post te doen van een formulier maar om de een of andere vage reden werkt het niet:
    dit is de foutregel:
    1http_request.setRequestHeader("Content-length", parameters.length);

    de foutmelding die ik daar bij krijg is dit:
    quote:
    line: 48
    char: 2
    Error: unknown name
    code: 0
    deze melding krijg ik alleen in IE en FF geeft in de JS console geen fouten weer.
    wie helpt me op weg..?


    de source is hier te vinden
    *Kuch*
    ik zat met de verkeerde menu optie te spelen...

    zelf opgelost

    mscholzondag 24 september 2006 @ 13:06
    heb nu wel; een echt probleempje:
    dit is me code:
    http://fia181-83.dsl.hccnet.nl/server/test.html

    waarom komt geen van de div's tevoorschijn?
    document.getElementById(P_text) selecteerd toch gewoon p_text?
    Darkomenzondag 24 september 2006 @ 13:23
    document.getElementById('P_text')
    Quotes, anders denk hij dat het een variable is, welke dus niet is aangemaakt.

    Ow en onslect werkt daar volgens mij niet, dus doe eens onclick
    mscholzondag 24 september 2006 @ 13:27
    quote:
    Op zondag 24 september 2006 13:23 schreef Darkomen het volgende:
    document.getElementById('P_text')
    Quotes, anders denk hij dat het een variable is, welke dus niet is aangemaakt.

    Ow en onslect werkt daar volgens mij niet, dus doe eens onclick
    idd thnx
    en onselect deed het idd niet, onclick wel ..

    [ Bericht 5% gewijzigd door mschol op 24-09-2006 13:46:56 ]
    Darkomenzondag 24 september 2006 @ 13:55
    mooi
    Radjeshdinsdag 26 september 2006 @ 12:01
    Hoe maak ik het beste rapporten uit java?
    #ANONIEMdinsdag 26 september 2006 @ 12:10
    quote:
    Op dinsdag 26 september 2006 12:01 schreef Radjesh het volgende:
    Hoe maak ik het beste rapporten uit java?
    N00b Javascript != Java.
    Nevermindwoensdag 27 september 2006 @ 09:38
    Ik zoek een script dat min of meer als Google Maps werkt. Alleen wil ik een custom map gebruiken (van een spel) en mijn eigen punten en routes toevoegen. Liefst zo gebruikersvriendelijk mogelijk. Ik kan niet veel dergelijks vinden na uren zoeken, graag tips
    Radjeshwoensdag 27 september 2006 @ 11:56
    quote:
    Op dinsdag 26 september 2006 12:10 schreef Scorpie het volgende:

    [..]

    N00b Javascript != Java.
    Ja weet ik, was verkeerd topic.

    Antwoord me vraag eens Scorpie!
    Desdinovadonderdag 28 september 2006 @ 14:10
    ik heb een scriptje wat de value van een tekstveld vult met de waarde this.style.backgroundColor.. maar deze waarde doet hij in RGB formaat ik zie het liever in HEX.. is dat te specificeren op een bepaalde manier?
    Neverminddonderdag 28 september 2006 @ 16:54
    quote:
    Op donderdag 28 september 2006 14:10 schreef Desdinova het volgende:
    ik heb een scriptje wat de value van een tekstveld vult met de waarde this.style.backgroundColor.. maar deze waarde doet hij in RGB formaat ik zie het liever in HEX.. is dat te specificeren op een bepaalde manier?
    Als ik goed begrijp wat je bedoelt moet je even googelen op javascript rgb2hex
    Dan krijg je bijvoorbeeld deze pagina of deze.
    Messengazondag 1 oktober 2006 @ 14:54
    verkeerde topic

    [ Bericht 88% gewijzigd door Messenga op 01-10-2006 15:54:58 ]
    ralfiezondag 1 oktober 2006 @ 14:59
    quote:
    Op dinsdag 26 september 2006 12:10 schreef Scorpie het volgende:

    [..]

    N00b Javascript != Java.
    SuperRembozondag 1 oktober 2006 @ 15:10
    quote:
    Op zondag 1 oktober 2006 14:54 schreef Messenga het volgende:
    Zo, hier is de ubern00b van FOK! wat betreft Java weer.
    [Java] voor dummies - Deel 1
    Messengazondag 1 oktober 2006 @ 15:54
    quote:
    Op zondag 1 oktober 2006 15:10 schreef SuperRembo het volgende:

    [..]

    [Java] voor dummies - Deel 1
    Woeps

    Lijkt allemaal op elkaar. .
    Nevermindzondag 1 oktober 2006 @ 16:39
    quote:
    Op woensdag 27 september 2006 09:38 schreef Nevermind het volgende:
    Ik zoek een script dat min of meer als Google Maps werkt. Alleen wil ik een custom map gebruiken (van een spel) en mijn eigen punten en routes toevoegen. Liefst zo gebruikersvriendelijk mogelijk. Ik kan niet veel dergelijks vinden na uren zoeken, graag tips
    kickje
    Nevermindwoensdag 4 oktober 2006 @ 22:17
    Meh, zoiets bestaat toch wel?
    Darkomendonderdag 12 oktober 2006 @ 14:11
    Vast wel nevermind, maar of het makelijk te vinden is....


    Kan je trouwens de text vanuit een input box op een pagina copieren naar een input box op de pagina in een iframe op die pagina?
    ralfiedonderdag 12 oktober 2006 @ 15:20
    1
    2
    3
    4
    5
    6
    //vanuit pagina iets als

    frames['naam van iframe'].document.getElementById('output').value=document.getElementById('input').value

    //vanuit frame
    document.getElementById('output').value=parent.document.getElementById('input').value
    Darkomendonderdag 12 oktober 2006 @ 15:22
    Zo simpel
    Nu maar eens kjiken of ik het voor elkaar krijgen, de pagina uit het iframe kan ik niet aanpassen en heeft geen id, maar moet luken
    Darkomenvrijdag 13 oktober 2006 @ 10:25
    Fout uncaught exception: Geen toestemming om eigenschap HTMLDocument.getElementsByName te lezen
    Fout uncaught exception: Geen toestemming om eigenschap HTMLDocument.getElementsByTagName te lezen

    Euhm, hoe kan ik het nog meer proberen? ik kan het bestand in de iframe zelf niet wijzigen.(remote)
    ralfievrijdag 13 oktober 2006 @ 10:49
    Nee, dat is beveiligd, zal je niet lukken. Je kan geloof ik wel functies van dat frame aanroepen, dus dan zal je dat via je eigen functies moeten doen
    Darkomenvrijdag 13 oktober 2006 @ 11:12
    Hoe bedoel je?

    Het veld in het iframe welke gevuld moet worden vanuit de parent heeft de naam mac. 4de input veld in het form.
    ralfievrijdag 13 oktober 2006 @ 12:16
    De parent pagina en iframe moeten in hetzelfde domein zitten, anders wordt cross-frame scripting geblokkeerd. Zal wel ergens een veiligheidsrisico inzitten, maar dat snap ik niet echt.

    Als je het bestand van het iframe had kunnen wijzigen had je daarin een functie kunnen maken welke je vanuit je parentframe aanroept, volgens mij kan dat wel.
    Darkomenvrijdag 13 oktober 2006 @ 12:32
    Jammer, dan gaat het dus niet lukken, zou namelijk iets bij mn werk een stukje makelijker maken (makelijker dan de gene die de server beheert 1 klein regeltje javascript te laten toevoegen.)
    Kan je je voorstellen hoe dat hier gaat
    Desdinovavrijdag 13 oktober 2006 @ 14:19
    is het mogelijk om een window.open in een href="" te zetten zonder dat er gebruik gemaakt hoeft te worden van javascript om de href aktie te cancellen? want nu opent hij de pagina wel, maar gaat hij op de oorspronkelijke pagina ook naar een pagina, met als url de javascript code..
    #ANONIEMvrijdag 13 oktober 2006 @ 15:05
    quote:
    Op vrijdag 13 oktober 2006 14:19 schreef Desdinova het volgende:
    is het mogelijk om een window.open in een href="" te zetten zonder dat er gebruik gemaakt hoeft te worden van javascript om de href aktie te cancellen? want nu opent hij de pagina wel, maar gaat hij op de oorspronkelijke pagina ook naar een pagina, met als url de javascript code..
    target="_new" erbij zetten in de href.
    SuperRembovrijdag 13 oktober 2006 @ 19:28
    target="_blank" bedoel je.
    CraZaayvrijdag 13 oktober 2006 @ 22:35
    quote:
    Op vrijdag 13 oktober 2006 14:19 schreef Desdinova het volgende:
    is het mogelijk om een window.open in een href="" te zetten zonder dat er gebruik gemaakt hoeft te worden van javascript om de href aktie te cancellen? want nu opent hij de pagina wel, maar gaat hij op de oorspronkelijke pagina ook naar een pagina, met als url de javascript code..
    <a href="javascript:window.open()">klik</a> ?
    SuperRembovrijdag 13 oktober 2006 @ 23:13
    quote:
    Op vrijdag 13 oktober 2006 22:35 schreef CraZaay het volgende:

    [..]

    <a href="javascript:window.open()">klik</a> ?
    Dat geeft dus precies het probleem waar Desdinova het over had

    Maar als je achter een link geen link stopt maar javascript, gebruik dan gewoon geen link!
    CraZaayvrijdag 13 oktober 2006 @ 23:20
    quote:
    Op vrijdag 13 oktober 2006 23:13 schreef SuperRembo het volgende:

    [..]

    Dat geeft dus precies het probleem waar Desdinova het over had

    Maar als je achter een link geen link stopt maar javascript, gebruik dan gewoon geen link!
    Je hebt helemaal gelijk.
    Desdinovavrijdag 13 oktober 2006 @ 23:52
    jaaa maar dr is geen onclick event in te stellen in de editor waar t voor is dus vandaar dat ik me afvroeg of het op een andere manier in de href zou kunnen. tevens moet je target hetzelfde zijn als de naam die je opgeeft in je window.open
    CraZaayzaterdag 14 oktober 2006 @ 00:02
    Wat SuperRembo denk ik bedoelt is dat je er sowieso geen <a> voor zou moeten gebruiken, niet in de href en niet in de onclick

    Waarom heb je precies window.open)( nodig en kan het niet met een normale href?
    Desdinovazaterdag 14 oktober 2006 @ 18:40
    windowsizes bijvoorbeeld.

    wat raad je dan aan rembo? een span met een onmouseover voor cursor pointer en een onclick? en waarom?
    Hmailmaandag 30 oktober 2006 @ 12:39
    kickje
    Is er in javascript ook een variant van de php's $_SERVER['REQUEST_URI']? REQUEST_URI geeft de pagina weer die er bezocht word, dus als ik deze url aanroep: http://cafs009/sd/dev/test.php?test=blaat dan is $_SERVER['REQUEST_URI']: /sd/dev/test.php?test=blaat. Dat is handig, want ook als ik achter test=blaat #20 neerzet, is de REQUEST_URI nog steeds hetzelfde. Misschien handig om even uit te leggen wat ik precies wil

    In een pagina roep ik een functie aan die een extra stukje (een invoerscherm) aan de htmlpagina toevoegd. Als ik dus de link voor een nieuw invoerscherm aanklik komt dat scherm erbij, en springt de pagina via window.location door naar dat invoerscherm: #newreact. Echter, als ik die link nog een keer aanklik komt er dus achter de url (waar al #newreact in staat), nogmaals #newreact te staan. Ik wil dus eigenlijk dat hij naar REQUEST_URI + #newreact springt. Via php is het lastiger om dit te realiseren omdat de javascript in een apart bestand staat. Dus dan mijn vraag: Kan ik die REQUEST_URI ook in javascript opvragen, of is er een andere methode om dit te doen?
    #ANONIEMmaandag 30 oktober 2006 @ 12:43
    quote:
    Op maandag 30 oktober 2006 12:39 schreef Hmail het volgende:
    kickje
    Is er in javascript ook een variant van de php's $_SERVER['REQUEST_URI']? REQUEST_URI geeft de pagina weer die er bezocht word, dus als ik deze url aanroep: http://cafs009/sd/dev/test.php?test=blaat dan is $_SERVER['REQUEST_URI']: /sd/dev/test.php?test=blaat. Dat is handig, want ook als ik achter test=blaat #20 neerzet, is de REQUEST_URI nog steeds hetzelfde. Misschien handig om even uit te leggen wat ik precies wil

    In een pagina roep ik een functie aan die een extra stukje (een invoerscherm) aan de htmlpagina toevoegd. Als ik dus de link voor een nieuw invoerscherm aanklik komt dat scherm erbij, en springt de pagina via window.location door naar dat invoerscherm: #newreact. Echter, als ik die link nog een keer aanklik komt er dus achter de url (waar al #newreact in staat), nogmaals #newreact te staan. Ik wil dus eigenlijk dat hij naar REQUEST_URI + #newreact springt. Via php is het lastiger om dit te realiseren omdat de javascript in een apart bestand staat. Dus dan mijn vraag: Kan ik die REQUEST_URI ook in javascript opvragen, of is er een andere methode om dit te doen?
    Waarom laat je PHP niet automatisch je javascript code genereren?
    Hmailmaandag 30 oktober 2006 @ 12:44
    quote:
    Op maandag 30 oktober 2006 12:39 schreef Hmail het volgende:
    Via php is het lastiger om dit te realiseren omdat de javascript in een apart bestand staat. Dus dan mijn vraag:
    Roonaanmaandag 30 oktober 2006 @ 12:48
    wat is er mis met document.location.href?
    Hmailmaandag 30 oktober 2006 @ 12:54
    Daar staat dus die #newreact nog achter, terwijl dat juist weggelaten moet worden.
    Roonaanmaandag 30 oktober 2006 @ 12:55
    quote:
    Op maandag 30 oktober 2006 12:54 schreef Hmail het volgende:
    Daar staat dus die #newreact nog achter, terwijl dat juist weggelaten moet worden.
    Mja. window.location.href.substring(0, window.location.href.indexOf('#'));

    -r-
    Hmailmaandag 30 oktober 2006 @ 13:00
    Ik kende substring niet, dus vandaar dat ik daar nog niet opgekomen was. Maar dit werkt prima, bedankt!
    TechXPmaandag 30 oktober 2006 @ 15:06
    Ik ben wat aan het kloten met javascript. Gebruik het niet dagelijks, dus kan nog wel wat foutjes maken.

    Ik heb de volgende code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function sendIt() {
       
    //   alert(document.getElementById('frmDoorsturen').elements[0].name + '=' + document.getElementById('frmDoorsturen').elements(0).value);

       str = document.getElementById('frmDoorsturen').elements[0].name + '=' + document.getElementById('frmDoorsturen').elements(0).value + '&';   
       str += document.getElementById('frmDoorsturen').elements[1].name + '=' + document.getElementById('frmDoorsturen').elements(1).value + '&';
       str += document.getElementById('frmDoorsturen').elements[2].name + '=' + document.getElementById('frmDoorsturen').elements(2).value + '&';
       str += document.getElementById('frmDoorsturen').elements[3].name + '=' + document.getElementById('frmDoorsturen').elements(3).value + '&';
       str += document.getElementById('frmDoorsturen').elements[4].name + '=' + document.getElementById('frmDoorsturen').elements(4).value + '&';
       str += document.getElementById('frmDoorsturen').elements[5].name + '=' + document.getElementById('frmDoorsturen').elements(5).value + '&';
       str += document.getElementById('frmDoorsturen').elements[6].name + '=' + document.getElementById('frmDoorsturen').elements(6).value + '&';
       str += document.getElementById('frmDoorsturen').elements[7].name + '=' + document.getElementById('frmDoorsturen').elements(7).value + '&';
       str += document.getElementById('frmDoorsturen').elements[8].name + '=' + document.getElementById('frmDoorsturen').elements(8).value + '&';
       str += document.getElementById('frmDoorsturen').elements[9].name + '=' + document.getElementById('frmDoorsturen').elements(9).value + '&';
       str += document.getElementById('frmDoorsturen').elements[10].name + '=' + document.getElementById('frmDoorsturen').elements(10).value + '&';
       str += 'vid' + '=' + id;

       //alert(str);
       
    }


    Dit werkt perfect in IE. Maar in firefox en opera werkt het niet. Weet iemand waar het aan ligt?
    Naar mijn idee zou het moeten werken.

    thanks,

    Alex
    Roonaanmaandag 30 oktober 2006 @ 15:09
    Wat moet het doen dan? Heeft je frm daadwerkelijk een id, of alleen een name?

    probeer eens met
    1
    2
    3
    4
    5
    var str = '';
    var frm = document.forms['formname']; //formname is hetgeen staat in <form name="formname">
    for(var i = 0; i < frm.elements.length; i++) {
      str += frm.elements[i].name + "=" + escape(frm.elements[i].value) + "&";
    }


    -r-
    TechXPmaandag 30 oktober 2006 @ 15:39
    Ok.. dat lijkt wel beter te werken. Thanks.
    SuperRembomaandag 30 oktober 2006 @ 17:43
    quote:
    Op maandag 30 oktober 2006 15:09 schreef Roönaän het volgende:
    Wat moet het doen dan? Heeft je frm daadwerkelijk een id, of alleen een name?

    probeer eens met
    [ code verwijderd ]

    -r-
    Alleen dan natuurlijk met encodeURIComponent() inplaats van escape().
    Roonaanmaandag 30 oktober 2006 @ 20:03
    Maakt die er geen UTF-8 encoding van? Dat heb je toch niet altijd nodig?
    SuperRembomaandag 30 oktober 2006 @ 21:44
    Van het euro-teken maakt escape %u20AC, dat is geen geldige url encoding. encodeURIComponent() maakt er %E2%82%AC. %u20AC snapt php zeker niet, %E2%82%AC zou goed moeten gaan (als je charset e.d. goed hebt staan).

    (IE5.0 kent encodeURIComponent trouwens niet)
    Webbydinsdag 31 oktober 2006 @ 17:14
    quote:
    Op zaterdag 14 oktober 2006 00:02 schreef CraZaay het volgende:
    Wat SuperRembo denk ik bedoelt is dat je er sowieso geen <a> voor zou moeten gebruiken, niet in de href en niet in de onclick

    Waarom heb je precies window.open)( nodig en kan het niet met een normale href?
    Een a href met correcte link en onclick via bijv document.getElementById().onClick = function () { window.open this.href ... is juist wel zo netjes, voor als er geen js beschikbaar is.
    Erikwoensdag 8 november 2006 @ 19:50
    Ik heb hetvolgende script gevonden en aangepast zodat verschillende waardes bij elkaar worden opgeteld:


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <script type="text/JavaScript">
             function startCalc()
             {
               interval = setInterval("calc()",1);
             }
             function calc()
             {
                if (document.getElementById)
                {
                   artikel1Aantal = document.getElementById('TextBoxartikelen1Aantal').value;
                   artikel1Prijs = document.getElementById('TextBoxartikelen1Prijs').value;
                   document.getElementById('TextBoxartikelen1PrijsTotaal').value = (artikel1Aantal * 1) * (artikel1Prijs * 1);

                   artikel2Aantal = document.getElementById('TextBoxartikelen2Aantal').value;
                   artikel2Prijs = document.getElementById('TextBoxartikelen2Prijs').value;
                   document.getElementById('TextBoxartikelen2PrijsTotaal').value = (artikel2Aantal * 1) * (artikel2Prijs * 1);

                   artikel3Aantal = document.getElementById('TextBoxartikelen3Aantal').value;
                   artikel3Prijs = document.getElementById('TextBoxartikelen3Prijs').value;
                   document.getElementById('TextBoxartikelen3PrijsTotaal').value = (artikel3Aantal * 1) * (artikel3Prijs * 1);

                   uren1Aantal = document.getElementById('TextBoxuren1Aantal').value;
                   uren1Prijs = document.getElementById('TextBoxuren1Prijs').value;
                   document.getElementById('TextBoxuren1PrijsTotaal').value = (uren1Aantal * 1) * (uren1Prijs * 1);

                   uren2Aantal = document.getElementById('TextBoxuren2Aantal').value;
                   uren2Prijs = document.getElementById('TextBoxuren2Prijs').value;
                   document.getElementById('TextBoxuren2PrijsTotaal').value = (uren2Aantal * 1) * (uren2Prijs * 1);

                   uren3Aantal = document.getElementById('TextBoxuren3Aantal').value;
                   uren3Prijs = document.getElementById('TextBoxuren3Prijs').value;
                   document.getElementById('TextBoxuren3PrijsTotaal').value = (uren3Aantal * 1) * (uren3Prijs * 1);


                   document.getElementById('TextBoxPrijsTotaal').value = (artikel1Aantal * 1) * (artikel1Prijs * 1) + (artikel2Aantal * 1) * (artikel2Prijs * 1) + (artikel3Aantal * 1) * (artikel3Prijs * 1) + (uren1Aantal * 1) * (uren1Prijs * 1);

                }
             }
             function stopCalc()
             {
               clearInterval(interval);
             }
             </script>


    Het werkt goed, er is alleen een probleem:
    Zodra ik een html pagina maak waarbij 1 van de textboxen niet aanwezig is wil het script niet meer werken.
    Hoe kan ik ervoor zorgen dat er in het script eerst wordt gekeken of een TextBox aanwezig is, en zo niet, het stukje code overgeslagen wordt?
    ralfiewoensdag 8 november 2006 @ 21:47
    je kunt de code van elk artikel apart in try/catch statements zetten
    try{
    //code die mss niet werkt
    }
    catch(e){
    //indien een error, wordt dit outgevoerd. Als je dit leeg laat, gaat ie gewoon verder
    }
    SuperRembowoensdag 8 november 2006 @ 22:04
    Een try catch is een lompe "oplossing". Je kan gewoon controleren of een veld bestaat voordat je de value ervan opvraagt. Je zou een functie kunnen maken die de numerieke waarde van een veld geeft, of een standaard waarde als het veld niet bestaat.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function getFieldFloat(id, defaultValue) {
       var field = document.getElementById(id);
       if (field) {
          var value = parseFloat(field.value);
          if (isNaN(value)) {
             return defaultValue;
          } else {
             return value;
          }      
       } else {
          return defaultValue;
       }
    }


    Je kan een soortgelijke functie maken om de waarde in een veld te zetten.

    Net zo lomp is trouwens om elke milliseconde (!!!) die berekening uit te voeren. Zet dan ff wat eventhandlers op de onchange of onkeypress van de velden.
    ChOasdonderdag 9 november 2006 @ 08:41
    quote:
    Op woensdag 8 november 2006 19:50 schreef Erik het volgende:
    Ik heb hetvolgende script gevonden en aangepast zodat verschillende waardes bij elkaar worden opgeteld:
    [ code verwijderd ]

    Het werkt goed, er is alleen een probleem:
    Zodra ik een html pagina maak waarbij 1 van de textboxen niet aanwezig is wil het script niet meer werken.
    Hoe kan ik ervoor zorgen dat er in het script eerst wordt gekeken of een TextBox aanwezig is, en zo niet, het stukje code overgeslagen wordt?
    Begrijp ik nou goed dat je je klanten zelf de uur en artikelprijs laat invullen ??
    Erikdonderdag 9 november 2006 @ 11:58
    quote:
    Op woensdag 8 november 2006 21:47 schreef ralfie het volgende:
    je kunt de code van elk artikel apart in try/catch statements zetten
    try{
    //code die mss niet werkt
    }
    catch(e){
    //indien een error, wordt dit outgevoerd. Als je dit leeg laat, gaat ie gewoon verder
    }
    Bedankt, ik ga het hiermee proberen
    quote:
    Op woensdag 8 november 2006 22:04 schreef SuperRembo het volgende:
    Een try catch is een lompe "oplossing". Je kan gewoon controleren of een veld bestaat voordat je de value ervan opvraagt. Je zou een functie kunnen maken die de numerieke waarde van een veld geeft, of een standaard waarde als het veld niet bestaat.
    [ code verwijderd ]

    Je kan een soortgelijke functie maken om de waarde in een veld te zetten.

    Net zo lomp is trouwens om elke milliseconde (!!!) die berekening uit te voeren. Zet dan ff wat eventhandlers op de onchange of onkeypress van de velden.
    Bedankt voor je tips, dat van die miliseconde ga ik meteen even anders instellen.
    Erikdonderdag 9 november 2006 @ 11:58
    quote:
    Op donderdag 9 november 2006 08:41 schreef ChOas het volgende:

    [..]

    Begrijp ik nou goed dat je je klanten zelf de uur en artikelprijs laat invullen ??
    De klant? Hoe kom je hier bij?
    ChOasdonderdag 9 november 2006 @ 12:10
    quote:
    Op donderdag 9 november 2006 11:58 schreef Erik het volgende:

    [..]

    De klant? Hoe kom je hier bij?
    Sorry, dacht dat het een customer frontend was.
    Erikdonderdag 9 november 2006 @ 14:48
    quote:
    Op donderdag 9 november 2006 12:10 schreef ChOas het volgende:

    [..]

    Sorry, dacht dat het een customer frontend was.
    Het is niet de bedoeling dat de klant hier iets van te zien krijgt nee
    Desdinovamaandag 13 november 2006 @ 15:54
    ik heb een form validation probleem

    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
    27
       if (document.getElementsByName('forwardingtype')){
          var thisarray = document.getElementsByName('forwardingtype');
          if (debug){ alert('thisarray is set'); }
       }
       if (document.getElementsByName('forwardingmanual')){
          var thisinnerarray = document.getElementsByName('forwardingmanual');
          if (debug){ alert('thisinnerarray is set'); }
       }
       alert (typeof(thisarray));
       if (thisarray){
          if (debug){ alert('thisarray is set, commencing check'); }
          for (var i=0; i <= thisarray.length; i++){
             if (debug){ alert('forloop thisarray started'); }
             if (debug){ alert(thisarray.length +' items in array'); }
             
             if (thisarray[i].value == 'manual'){
                if (debug){ alert('thisarray.value = manual'); }
                if (thisinnerarray[i].value == ''){
                   if (debug){ alert('thisinnerarray value = '''); }
                   return false;
                }
             }
             else {
                if (debug){ alert('thisarray.value = select'); }
             }
          }
       }


    forwardingtype is een array, ik krijg de alerts tot en met de x items in array. er staat 0 items in array.. ik doe waarschijnlijk iets heel simpels verkeerd, maar met google kom ik er niet uit

    [ Bericht 3% gewijzigd door Desdinova op 13-11-2006 16:11:50 ]
    HiDiHomaandag 13 november 2006 @ 16:05
    mis je niet nog een } op het eind?
    (kan aan mij liggen hoor)
    Desdinovamaandag 13 november 2006 @ 16:11
    oh foutje bij het kopieren maar dat is niet het punt..
    HiDiHomaandag 13 november 2006 @ 16:16


    [ Bericht 52% gewijzigd door HiDiHo op 13-11-2006 16:35:14 ]
    SuperRembomaandag 13 november 2006 @ 16:40
    Het ligt aan de scope van de variable. Als je een variable binnen een if definieerd, dan is hij daar buiten niet bekend.

    1
    2
    3
    4
    5
    6
    7
    var foo = '';
    if (x) {
       foo = 'x';
       var bar = 'y';
    }
    alert(typeof(foo));// geeft 'string'
    alert(typeof(bar));// geeft 'undefined'
    Knutmaandag 20 november 2006 @ 18:02
    1
    2
    3
    4
    5
    6
    7
    8
    function createEditForm(reactId){
      var objId = "react_body" + reactId;
      document.getElementById(objId).innerHTML = '';
      var newobjId = "text" + reactId;
      createNewElement(objId, '', 'textarea', {id: newobjId, rows: '10', cols: '40'}, '');
      ahahCall(baseRef + 'index.php?page=ahahHandler', newobjId, 'action=getReact&reactId='+reactId+'&undosml=1', 'addValue');
      createNewElement(objId, '', 'img', {src:baseRef + 'inc/tpl/sixties/i/edit.gif', alt:'submit', onclick: 'processEditReact(' + reactId + ')' }, '');
    }

    Deze functie levert in IE foutmeldingen op.
    Ik heb geen idee waarom echter.
    Als ik debug via de scriptdebugger krijg ik op deze regel een fout:
    1  createNewElement(objId, '', 'textarea', {id: newobjId, rows: '10', cols: '40'}, '');

    "Object expected"

    Iemand enig idee waar hij een object in verwacht ?
    Swetseneggermaandag 20 november 2006 @ 18:18
    quote:
    Op maandag 20 november 2006 18:02 schreef Knut het volgende:

    [ code verwijderd ]

    Deze functie levert in IE foutmeldingen op.
    Ik heb geen idee waarom echter.
    Als ik debug via de scriptdebugger krijg ik op deze regel een fout:
    [ code verwijderd ]

    "Object expected"

    Iemand enig idee waar hij een object in verwacht ?
    bekijk 'm eens in firefox, die geeft veel duidelijkere foutmeldingen mbt javascript
    Roonaanmaandag 20 november 2006 @ 18:20
    Zou het kunnen dat je aan onclick geen string mag toekennen maar enkel een function of een function ref?
    Knutmaandag 20 november 2006 @ 18:21
    quote:
    Op maandag 20 november 2006 18:18 schreef Swetsenegger het volgende:

    [..]

    bekijk 'm eens in firefox, die geeft veel duidelijkere foutmeldingen mbt javascript
    Dat is het nare.
    ff geeft geen js errors.
    Knutmaandag 20 november 2006 @ 18:30
    En de noodzaak is nu weg. Ik heb het geheel iets anders opgezet
    Roel_spaarndamdinsdag 21 november 2006 @ 01:08
    Ik ben bezig met het maken van een navigatie menu voor bovenaan mijn pagina. Als basis heb ik : deze genomen, en dan de two-level versie.

    Dit alles heb ik gewoon werkend gekregen, maar nu wil ik ipv tekst, afbeeldingen gebruiken. Als ik dit echter doe dan is de afbeelding alleen te zien als ik over de plek ga waar de afbeelding hoort te staan( maar niet te zien is). Ik heb al vanalles geprobeerd, maar het wil maar niet lukken.

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <script type="text/javascript"><!--//--><![CDATA[//><!--

    sfHover = function() {
       var sfEls = document.getElementById("nav").getElementsByTagName("LI");
       for (var i=0; i<sfEls.length; i++) {
          sfEls[i].onmouseover=function() {
             this.className+=" sfhover";
          }
          sfEls[i].onmouseout=function() {
             this.className=this.className.replace(new RegExp(" sfhover\b"), "");
          }
       }
    }
    if (window.attachEvent) window.attachEvent("onload", sfHover);

    //--><!]]></script>

    <style type="text/css">
    <!--
    @import url("file:///C|/Documents and Settings/Roelaano/Bureaublad/klimsite/opmaak.css");
    -->
    </style>
    </head>

    <body>
    <table width="861" bgcolor="#333333">
      <tr>
        <th height="251" colspan="5" scope="col"><img src="file:///C|/Documents and Settings/Roelaano/Bureaublad/klimsite/afbeeldingen/bovenkant.png" width="850" height="249" /></th>
      </tr>
      <tr>
        <td colspan="5"> <div align="center">
          <table width="789">
            <tr>
              <th scope="col">
            
            <ul id="nav">

       <li><a href="#"></a>
          <ul>
             <li><a href="bla"><img src="../../Roelaano/Bureaublad/klimsite/afbeeldingen/buttons/3000ersuit.gif" width="150" height="20" border="0" /></a>
                <ul>
                   <li><a href="#">Echeneis</a></li>
                   <li><a href="#">Phtheirichthys</a></li>
                   <li><a href="#">Remora</a></li>
                   <li><a href="#">Remorina</a></li>
                   <li><a href="#">Rhombochirus</a></li>
                </ul>
             </li>
             <li><a href="#">Tilefishes</a>

    .........
    .....
    .......
    .....


    Dit is het laatste wat ik geprobeerd heb, maar dus niet werkt.

    Wat ik eigenlijk ook nog wil is dat er een andere afbeelding komt, wanneer ik met de muis over de button ga (mouseOver), maar als dit al niet werkt dan wacht ik daar ook nog maar even mee.



    Zo moet het er uiteindelijk uit gaan zien. Ik weet dat jullie geen scriptschrijvers zijn die even een scriptje voor me in elkaar zitten, maar op dit moment kan ik wel een hulp/ tip gebruiken.


    mvg,
    Roel
    Webbydinsdag 21 november 2006 @ 08:35
    "Als ik dit echter doe dan is de afbeelding alleen te zien als ik over de plek ga waar de afbeelding hoort te staan( maar niet te zien is).". Je hebt in je voorbeeld html op het hoofd niveau een lege a tag. dan op je eerste niveau een img tag. Je plaatje verschijnt dus pas als je over die lege a tag beweegt idd.
    CraZaaydinsdag 21 november 2006 @ 09:52
    Is het niet veel eenvoudiger om dit met alleen CSS te bouwen?
    Roel_spaarndamdinsdag 21 november 2006 @ 12:17
    quote:
    Op dinsdag 21 november 2006 08:35 schreef Webby het volgende:
    "Als ik dit echter doe dan is de afbeelding alleen te zien als ik over de plek ga waar de afbeelding hoort te staan( maar niet te zien is).". Je hebt in je voorbeeld html op het hoofd niveau een lege a tag. dan op je eerste niveau een img tag. Je plaatje verschijnt dus pas als je over die lege a tag beweegt idd.
    Aardig dom dat ik dat zelf niet gezien heb maja, het was al laat .

    Ik heb nu het volgende voor elkaar gekregen: klikkerdeklik

    Het menu klopt nu, maar de buttons worden niet "ingedrukt" als ik er met de muis overheen ga. Dit zal waarschijnlijk wel aan het javascript liggen, en/of gewoon de waardeloze code die ik gebruik Javascript is duidelijk niet mijn sterkste punt. Graag zou ik ook nog de buttons tegen elkaar willen hebben, dus zonder de spaties ertussen.

    alvast bedankt.

    gelukkig kan ik straks weer verder met iets waar ik wel een beetje verstand van heb
    HuHudonderdag 23 november 2006 @ 14:48
    Ik heb de volgende HTML code:

    1
    2
    3
    4
    5
    <input type="text" name="aantal[]" onchange="veranderAantal(this.form);" />
    <input type="text" name="aantal[]" onchange="veranderAantal(this.form);" />
    <input type="text" name="aantal[]" onchange="veranderAantal(this.form);" />
    <input type="text" name="aantal[]" onchange="veranderAantal(this.form);" />
    <input type="text" name="aantal[]" onchange="veranderAantal(this.form);" />


    Waarbij het aantal input tags kan verschillen. Hoe kan ik nu in de functie veranderAantal alle aantallen bij elkaar optellen? Het wil mij niet lukken.
    MrX1982donderdag 23 november 2006 @ 14:53
    Ik heb een vraag over Java.

    Kan ik dat ook hier stellen?
    HuHudonderdag 23 november 2006 @ 15:00
    quote:
    Op donderdag 23 november 2006 14:53 schreef MrX1982 het volgende:
    Ik heb een vraag over Java.

    Kan ik dat ook hier stellen?
    Nee, dat kan hier: [Java] voor dummies - Deel 1.
    MrX1982donderdag 23 november 2006 @ 15:02
    quote:
    Op donderdag 23 november 2006 15:00 schreef HuHu het volgende:
    Nee, dat kan hier: [Java] voor dummies - Deel 1.
    Dan zal ik even een nieuwe thread aanmaken. Bedankt.
    SuperRembodonderdag 23 november 2006 @ 15:57
    quote:
    Op donderdag 23 november 2006 14:48 schreef HuHu het volgende:
    Ik heb de volgende HTML code:
    [ code verwijderd ]

    Waarbij het aantal input tags kan verschillen. Hoe kan ik nu in de functie veranderAantal alle aantallen bij elkaar optellen? Het wil mij niet lukken.
    Wat heb je nu dan?
    HuHudonderdag 23 november 2006 @ 18:12
    quote:
    Op donderdag 23 november 2006 15:57 schreef SuperRembo het volgende:

    [..]

    Wat heb je nu dan?
    Nu heb ik dit staan:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function veranderAantal (formulier)
    {
      var array_aantal = formulier.aantal;
      var aantal = 0;

      for (var n = 0; n < array_aantal.length; n++)
      {
        aantal += array_aantal[n];
      }

      //Toon het resultaat (slechts voor test)
      alert(aantal);
    }
    SuperRembodonderdag 23 november 2006 @ 19:49
    De naam van de velden is niet "aantal" maar "aantal[]" :)
    Verder moet je de values van de input elementen optellen, niet de elementen zelf. Even converteren naar een integer met parseInt is ook wel handig. Je zou ook nog kunnen controleren of de waarde wel echt een getal is.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function veranderAantal (formulier)
    {
      var array_aantal = formulier.elements['aantal[]'];
      var aantal = 0;

      for (var n = 0; n < array_aantal.length; n++)
      {
        aantal += parseInt(array_aantal[n].value);
      }

      //Toon het resultaat (slechts voor test)
      alert(aantal);
    }
    NTCEvrijdag 8 december 2006 @ 12:20
    // CODE STAAT IN PHP TAGS VOOR DE KLEUR AANDUIDING //

    Hey allemaal,

    Ik wil een Javascript Slider maken, met onderstaande code kan ik een DIV (layer) in hoogte resizen.

    1
    2
    3
    4
    5
    function SlideDown(){
    for(i=50; i<500; i++) {
    setTimeout("document.getElementById('layer').style.height='" +  i + "px'", (i+50)*6);
     }
    }



    Echter zoals je kunt zien gaat deze in een vloeiende beweging van 50 pixels naar 500 pixels in hoogte.
    Dit betekend dat hij altijd dezelfde snelheid behoud en dat wil ik niet.

    Wat ik wil is dat de for lus een array gaat doorlopen, voorbeeld:

    1array = array("50, 100, 150, 200, 250, 300, 350, 400, 450, 460, 470, 480, 490, 500");


    Je kunt ook zien dat bij de 450 hij nauwkeuriger wordt, hiermee moet dus de Slider een vertraging krijgen heel snel, naar langzamer en angzamer totdat hij stilstaat.

    Wie kan mij hierbij helpen hoe ik dit moet verwerken?

    SuperRembo heeft vervolgens mij geholpen in dit topic: Javascript Slide trough Array

    Maar dat werkt niet, wie kan mij helpen met deze lastige code?
    SuperRembovrijdag 8 december 2006 @ 13:02
    Aan de mededeling "werkt niet" heb ik niet veel. ALs je hier een vraag stelt dan is het handig als je duidelijker omschrijft wat het probleem is.

    Dit werkt wel.
    1
    2
    3
    4
    5
    6
    function SlideDown() {
       var a = new Array(50, 100, 150, 200, 250, 300, 350, 400, 450, 460, 470, 480, 490, 500);
       for(i = 0; i < a.length; i++) {
          setTimeout("document.getElementById('layer').style.height='" +  a[i] + "px'", (i + 50) * 6);
       }
    }
    NTCEvrijdag 8 december 2006 @ 13:21
    quote:
    Op vrijdag 8 december 2006 13:02 schreef SuperRembo het volgende:
    Aan de mededeling "werkt niet" heb ik niet veel. ALs je hier een vraag stelt dan is het handig als je duidelijker omschrijft wat het probleem is.

    Dit werkt wel.
    [ code verwijderd ]
    Dit werkt prima, hij doorloppt de array goed, echter heb ik zelf de fout gemaakt want ik heb de array laten aansluiten op de hoeveelheid pixels die hij uitvoert. Wat ik eigenlijk bedoelde, en wat ik dus verkeerd had uitgelegd, excuus, is dat er eigenlijk dan een vertraging op de timer moet komen.

    Ik had verwacht dat hij alles pixel voor pixel zou uitvoeren, maar hij doet nu 50 en dan de volgende 50 pixels, dus heel haperig.

    Hoe kan ik de array dan uitvoeren op de timer, kan je me daarbij nog helpen?
    SuperRembovrijdag 8 december 2006 @ 17:56
    Als je een klein beetje begrijpt wat de functie doet, dan is dat heel simpel aan te passen.
    NTCEzaterdag 9 december 2006 @ 13:40
    ik heb het idd al, thanks.
    Chandlerzondag 10 december 2006 @ 10:16
    Met het volgende script heb ik 2 kleine problemen..

    1. De HTML code (voor output van mijn poll) werkt niet in Internet Explorer
    2. Enters worden niet goed weer gegeven in Internet Explorer (rn)

    voorbeeld op http://dump.bruggema.nl/ubb.html :)

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <script language="javascript">

    function showPoll(type)
    {

        // init arrays
        pollAnswerID    = new Array();
        pollAnswer      = new Array();

        // poll information
        pollID          = 1;
        pollTitle       = "hello world";
        pollAnswers     = 3;
        pollAnswerID[1] = 1231;
        pollAnswerID[2] = 1211;
        pollAnswerID[3] = 2111;
        pollAnswer[1]   = "Antwoord nummer 1";
        pollAnswer[2]   = "Antwoord nummer 2";
        pollAnswer[3]   = "Antwoord nummer 3";

        // location settings.
        baseUrl     = "http://www.gfxpoll.nl";
        baseUrlVote = baseUrl + "/poll.php?vote=";
        baseUrlGfx  = baseUrl + "/viewgfx.php?id=" + pollID + ".png";
        baseUrlGfxZ = baseUrl + "/viewgfx/" + pollID + ".png";

        enter = "rn";

        
        if (type == "ubb")
        {
            str = "[b]" + pollTitle + "[/b]" + enter;
            for (x = 1; x <= pollAnswers; x++)
            {
                 str += "[*][url=" + baseUrlVote + pollAnswerID[x] + "]" + pollAnswer[x] + "[/url]" + enter;
            }
            str += enter + enter + "[sup]Tussenstand:[/sup]" + enter + enter + "[img]" + baseUrlGfx + "[/img]";
            str += enter + enter + "[sup]Ook een poll maken? klik dan [url=" + baseUrl + "]hier[/url]";
        }

        if (type == "ubbsmall")
        {
            str = "[b]" + pollTitle + "[/b]" + enter;
            for (x = 1; x <= pollAnswers; x++)
            {
                 str += "[*][url=" + baseUrlVote + pollAnswerID[x] + "]" + pollAnswer[x] + "[/url]" + enter;
            }
            str += enter + enter + "[sup]Tussenstand:[/sup]" + enter + enter + "[img]" + baseUrlGfxZ + "[/img]";
            str += enter + enter + "[sup]Ook een poll maken? klik dan [url=" + baseUrl + "]hier[/url]";
        }

        if (type == "html")
        {
            str = "<strong>" + pollTitle + "</strong><br /><br />" + enter + enter + "<ul>" + enter;
            for (x = 1; x <= pollAnswers; x++)
            {
                 str += "    <li><a href="" + baseUrlVote + pollAnswerID[x] + "" target="_newWin">" + pollAnswer[x] + "</a></li>" + enter;
            }
            str += enter + enter + "</ul>" + enter + enter + "<small>Tussenstand:</small><br /><br />" + enter + "<img src="" + baseUrlGfx + ""><br /><br />";
            str += enter + enter + "<small>Ook een poll maken? klik dan <a href="" + baseUrl + "" TARGET="_newwin">hier</a></small>";
        }

        str.replace("<", "%3C");
        str.replace(">", "%3E");

        return str;
    }

    function vPoll(type)
    {
         document.getElementById('polltext').innerHTML = showPoll(type);
    }

    </script>

    <table>
    <tr>
        <td><a href="javascript:vPoll('ubb');">UBB Code</a></td>
        <td><a href="javascript:vPoll('ubbsmall');">UBB Small Code</a></td>
        <td><a href="javascript:vPoll('html');">HTML Code</a></td>
    </tr>
    <tr>
        <td colspan=3>Code:</td>
    </tr>
    <tr>
        <td colspan=3><textarea id="polltext" style="width: 400px; height: 200px;">inhoud</textarea></td>
    </tr>
    </table>


    de fout zit um in de 1e regel van de functie vPoll(type) oftewel

    1     document.getElementById('polltext').innerHTML = showPoll(type);


    en dit heb ik geprobeerd op te lossen met

    1
    2
        str.replace("<", "%3C");
        str.replace(">", "%3E");


    maar helaas geen resultaat... heeft iemand een idee? het is alleen bij't linkje "HTML code"
    ralfiezondag 10 december 2006 @ 10:38
    probeer ipv textarea.innerHTML textarea.value te setten, heb je ook geen gezeik meer met html karakters te escapen
    Chandlerzondag 10 december 2006 @ 21:34
    jah, dat is inderdaad een betere oplossing!

    -edit-
    raar dat je daar zo overheen kijkt, maar goed... alle problemen zijn verdwenen
    mscholmaandag 11 december 2006 @ 23:36
    klein vraagje m.b.t. een functie die ik heb gebouwd:
    bij het onclick event van een knop roep ik de volgende functie aan:
    1
    2
    3
    4
    5
    6
    7
    function AddFile(place,file,button)
    {
    var button = button;
       newWindow = window.open('add.php?path='+place+'&file='+file,"add_file","status=0,menubar=0,height=250,width=100,top=60px,left=100px");
       button.disabled=true;
       newWindow.focus();
    }


    alleen wordt de aanroep knop niet gedisabled.
    als ik een alert van button doe krijg ik wel netjes de button naam terug..
    wat doe ik verkeerd??
    Litphomaandag 11 december 2006 @ 23:39
    quote:
    Op maandag 11 december 2006 23:36 schreef mschol het volgende:
    als ik een alert van button doe krijg ik wel netjes de button naam terug..
    wat doe ik verkeerd??
    Geef je aan de functie alleen de buttonnaam mee, of het buttonobject (evt. opgehaald met iets als document.getElementById)?
    mscholmaandag 11 december 2006 @ 23:41
    quote:
    Op maandag 11 december 2006 23:39 schreef Litpho het volgende:

    [..]

    Geef je aan de functie alleen de buttonnaam mee, of het buttonobject (evt. opgehaald met iets als document.getElementById)?
    alleen button naam m.b.v. this.name

    en hier verder:

    [Javascript] voor dummies deel 5