abonnement Unibet Coolblue Bitvavo
pi_44343806


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
{hier de link van het vorige deel}

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 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)?
quote:
Op maandag 11 december 2006 23:41 schreef mschol het volgende:

[..]

alleen button naam m.b.v. this.name
Deze OP: http://wiki.fok.nl/index.php/OP/Javascript
pi_44343887
Ah. Je probeert een property (disabled) te veranderen van een buttonobject maar in plaats daarvan zet je een property (disabled) van een stringobject.

Kijk of je in je HTML-code dezelfde buttonnaam ook als id kan opnemen en neem in je javascript de volgende code op:
1
2
3
4
5
6
7
function AddFile(place,file,button)
{
var btn = document.getElementById(button);
   newWindow = window.open('add.php?path='+place+'&file='+file,"add_file","status=0,menubar=0,height=250,width=100,top=60px,left=100px");
   btn.disabled=true;
   newWindow.focus();
}
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_44343992
quote:
Op maandag 11 december 2006 23:46 schreef Litpho het volgende:
Ah. Je probeert een property (disabled) te veranderen van een buttonobject maar in plaats daarvan zet je een property (disabled) van een stringobject.

Kijk of je in je HTML-code dezelfde buttonnaam ook als id kan opnemen en neem in je javascript de volgende code op:
[ code verwijderd ]
ik loop altijd met dit verschil te vechten, en nog steeds vergeet ik het
maar dan wordt me ID 'NULL' ik ga zelf nog eff vechten, ben in iedergeval weer een eind verder

wel this.name naar this.id veranderen

anyways et werkt

[ Bericht 14% gewijzigd door mschol op 11-12-2006 23:58:22 ]
pi_44344406
Waarom de name of id doorgeven als je de button zelf al kent?

1
2
3
function test(button) {
   button.disabled = true;
}


1<input type="button" onclick="test(this);return false;" value="Test">


En de name doorgeven en dan getElementById() gebuiken lijkt me ook niet handig. Misschien dat het in IE werkt, maar in FF uiteraard niet (en terecht!).
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_44344482
quote:
Op dinsdag 12 december 2006 00:02 schreef SuperRembo het volgende:
En de name doorgeven en dan getElementById() gebuiken lijkt me ook niet handig. Misschien dat het in IE werkt, maar in FF uiteraard niet (en terecht!).
Er was een reden dat ik erbij zette dat je de naam ook als id-waarde moest opnemen in je HTML .

Het komt nog wel eens voor dat ik wel een naam/id heb (bijv. teruggegeven vanuit een AJAX-callback) maar niet een object. Anders kan je inderdaad net zo goed het object meegeven.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_44344507
quote:
Op dinsdag 12 december 2006 00:02 schreef SuperRembo het volgende:
Waarom de name of id doorgeven als je de button zelf al kent?
[ code verwijderd ]


[ code verwijderd ]

En de name doorgeven en dan getElementById() gebuiken lijkt me ook niet handig. Misschien dat het in IE werkt, maar in FF uiteraard niet (en terecht!).
name doorgeven werkt ook niet, id doorgeven daarin tegen werkt vlekkeloos..
het kan vast beter maar aangezien een een eigen brouwseltje is dat op een lokale webserver draait waar nooit iemand bij kan komen behalve ikzelf hoeft de code niet geoptimalizeerd te worden
thnx for de input overigens
pi_44348052
tvp voor de toekomst
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_44867927
Ik zit weer eens te stoeien met IE, maar ik kom er niet uit. IE kan (zoals wellicht bekend) het niet aan dat je een input element nog aanpast, nu had ik daar een workaround voor gevonden, maar ik krijg het niet aan de praat.

Het gaat om de volgende twee functies:
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
function createUpload(numberOfElements, objectId){
  var element = document.getElementById(objectId);
  
  for (var x = 1; element.childNodes.length > 0; x++){
    element.removeChild(element.firstChild);
  }
  
  for(var i = 1; i <= numberOfElements; i++){
    createNewElement(objectId, "", "input", {type: "file", name: "uploadFile[]"}, "");
  }
}

function createNewElement(parent, beforeWhat, name, attrs, text) {
    var parent                                    =   document.getElementById(parent);
    try { 
      /*
       IE fix for input elements
      */
      if (attrs){
        var attributes                            =   "<" + name +" ";
        for (key in attrs) {
          attributes                              +=  key +"=""+ attrs[key] +"" ";
        }
        attributes                                +=  ">";
      }
      
      var e                                       =   document.createElement(attributes);
    } 
    catch (element) {
    }
    
    if (!e || e.nodeName != type.toUpperCase()) {
      var e                                       =   document.createElement(name);
      
      if (attrs) {
        for (key in attrs) {
          switch(key){
            case "class":
              e.className                             =   attrs[key];
            break;
            
            case "id":
              e.id                                    =   attrs[key];
            break;
            
            case "name":
            break;
            
            default:
              e.setAttribute(key, attrs[key]);
          } 
        }
      }
    }
  
  
  if (text) {
    e.appendChild(document.createTextNode(text));
  }
  
  if(beforeWhat != ""){
    var beforeWhat                                =   document.getElementById(beforeWhat);
    parent.insertBefore(e, beforeWhat);
  }
  else{
    parent.appendChild(e);
  }
}


Hoe krijg ik het aan de praat in IE?
pi_44875150
Hier heb je lopen klooten met quotjes:
1          attributes                              +=  key +"=""+ attrs[key] +"" ";


Hier bestaat 'type' niet, zal waarschijnlijk iets met attrs['type'] moeten zijn
1    if (!e || e.nodeName != type.toUpperCase()) {



Beetje lomp om zo'n heel blok in een try/catch te zetten terwijl je makkelijk kan bepalen of je met IE te maken hebt. Dan hoeven andere browsers niet onnodig die code uit te voeren die toch niet gaat werken.

En wat een ranzige uitlijning van je code
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_44882835
quote:
Op zaterdag 30 december 2006 23:38 schreef SuperRembo het volgende:
Hier heb je lopen klooten met quotjes:
[ code verwijderd ]
dat was FOK!, niet ik , in de paste stond het goed
quote:
Hier bestaat 'type' niet, zal waarschijnlijk iets met attrs['type'] moeten zijn
[ code verwijderd ]
dat zal hem wellicht zijn idd .
quote:
Beetje lomp om zo'n heel blok in een try/catch te zetten terwijl je makkelijk kan bepalen of je met IE te maken hebt. Dan hoeven andere browsers niet onnodig die code uit te voeren die toch niet gaat werken.
Persoonlijk vind ik browsersniffing nog ranziger en onderhoudsonvriendelijker .
quote:
En wat een ranzige uitlijning van je code
persoonlijke smaak
pi_44887190
quote:
Op zondag 31 december 2006 10:03 schreef rickmans het volgende:
persoonlijke smaak
Leuke link . Dan nog zou ikzelf de assignment targets niet allemaal ergens op ver rechts uitlijnen, maar zoals je zegt, dat is persoonlijke smaak (en niets wat een goede code formatter niet ongedaan kan maken ).
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_44889040
quote:
Op zaterdag 30 december 2006 23:38 schreef SuperRembo het volgende:
En wat een ranzige uitlijning van je code
vind ik ook maar das zoals eerder gezegd persoonlijke smaak,
ik houd van veel ruimt zodat het snel te lezen is (voor mij iig)
pi_44890545
En wat is dan bijvoorbeeld een goede code formatter voor javascript? En dan liefst een die niet op z'n bek gaat bij een flinke hoeveelheid code.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_44893639
het vragen van de grootte van een venster, hoe doe ik dat?
ik dacht altijd via window.width of window.height
maar ik lees iets over innerwidth en outerwidth
  Moderator zondag 31 december 2006 @ 16:06:10 #15
1424 crew  Jimbo
Gråtrunka
pi_44893682
lol ik kijk net in de topic en ik denk wtf doet dit in ONZ..... zit ik in DIG
Op donderdag 20 augustus 2020 17:36 schreef Notorious_Roy het volgende:
Naast alle onzin die je uitkraamt heb je af en toe ook gewoon heel verstandige posts.
Op dinsdag 10 augustus 2021 16:32 schreef yvonne het volgende:
@:Jimbo voor mod, yeah *O*
pi_44894041
De property's voor de breedte en hoogte van een window hangen af van de browser. Bij IE hangt het er ook nog van af of het een normaal window of een modal dialog is.

Zie bijv. http://www.quirksmode.org/js/winprop.html
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_45241507
1
2
3
4
5
6
7
8
9
10
11
12
function styleAbbr() {
   var oldBodyText, newBodyText, reg;

   oldBodyText = document.body.innerHTML;
   reg = /<abbr([^>]*)>([^<]*)</abbr>/g;
   newBodyText = oldBodyText.replace(reg, '<abbr $1><span class="abbr" $1>$2</span></abbr>');
   document.body.innerHTML = newBodyText;
}

window.onload = function(){
   styleAbbr()
}


Ik heb dit script (gekregen van iemand) Om in Internet Explorer er voor te zorgen dat de abbr tag toch 'werkt'
Maar in Internet Explorer werkt het juist niet. In Firefox wel. Maar daar hoeft het niet want de abbr tag werkt daar gewoon.

Dus, wat is er fout aan dat het niet in IE werkt?
pi_45242414
Misschien een idee om de slash in je regular expression te escapen met een backslash?
1   reg = /<abbr([^>]>([^<]<\/abbr>/g;
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_45243618
Staat 'ie ook, maar Fok! neemt em niet over.

Hier staat een online voorbeeld.
http://lab.danielpunt.nl/abbr.html
pi_45243967
Om de een of andere reden haalt hij <p><abbr title="Cascading Style Sheets">CSS</abbr></p> op met de elementen in uppercase. Voeg ignore case toe aan je regexp en het werkt bij mij in IE.
"If you are depressed you shouldn't be in C major!" - Rick Beato
pi_45244109
uhm, ik ben niet zo goed in JavaScript. Maar ik ga het proberen. Zo leer ik er ook nog eens van
Dank je wel
pi_45246392
Lijkt me geen lekker scriptje om op iets grotere pagina's te gebruiken. IE zal de pagina op deze manier altijd 2x moeten opbouwen. Helemaal lullig in IE7, want die ondersteunt de abbr tag wel.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_45246955
Het gaat ook niet gebruikt worden op grote pagina's.
En kan ik niet filteren op lagere versie's dan IE 6?

Anders moet ik het in PHP gaan maken.
pi_45253231
Je kunt 't met conditional comments verbergen voor browser die 't wel ondersteunen.

1
2
3
4
5
6
7
8
<!--[if IE lt 7]>
<script type="text/javascript">
window.onload = function() {
   var b = document.body;
   b.innerHTML = b.innerHTML.replace(/<abbr([^>]*)>([^<]*)<\/abbr>/gi, '<abbr $1><span class=\"abbr\" $1>$2</span></abbr>');
}
</script>
<![endif]-->


(niet echt getest)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_45401554
Oh stom, niet aan gedacht. Er staat 1 klein foutje in jou code:
1
2
3
<!-- if lt IE 7]>
//code
<![endif]-->

Zo werkt het wel :) Dank!
pi_46009720
Korte vraag; kun je bij een alertbox de text op de OK-button veranderen?
Zo ja; hoe?
pi_46014684
Kort antwoord: nee.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_46014872
Helaas. Zo'n vermoeden had ik al.
  woensdag 7 februari 2007 @ 12:46:10 #29
5637 koekiemonster
Goede reaktie ------------>
pi_46071209
ik heb nu een cms waarmee ik door middel van js bepaalde informatie in een contentveld plaats.
nu wil ik deze informatie omvormen.

ik plaats door middel van een knop een javascript string, waarmee ik filmpjes kan tonen.
Nu wil ik onload een aantal elementen uit deze string filteren.
Het kan dus voorkomen dat onderstaande string meerdere keren voorkomt, met andere waarden.

Welke waarden wil ik filteren?
- width-waarde;
- height-waarde;
- van flashvars, de naam achter file=
- van flashvars de waarde achter img=

Dit is zo'n string, maar in mijn editor kunnen er dus bijvoorbeeld wel 10 vookomen.
quote:
<p id="player1881">
<a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.
</p>

<script type="text/javascript">
var FO = {
movie:"player.swf",
width:" 200" ,
height:"200",
majorversion:"7",
build:"0",
bgcolor:"#FFFFFF",
flashvars:"file=/lynx/uploads/Flash/test.flv&showdigits=true&backcolor=0xABD7FE&showicons=true&image=bla.jpg"
};
UFO.create(FO, "player1881");
</script>


Hoe kan ik op de makkelijkste manier hierdoorheen loopen en de gewenste waarden filteren?
koekje erbij?
  woensdag 7 februari 2007 @ 17:30:17 #30
5637 koekiemonster
Goede reaktie ------------>
pi_46079973
help?
koekje erbij?
pi_46081008
quote:
Op woensdag 7 februari 2007 17:30 schreef koekiemonster het volgende:
help?
Niet al te ongeduldig doen he.


Met String.replace() en een regexp moet je een heel eind kunnen komen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_46084588
Leuke vraag denk ik:

Stel ik wil een POPUP op een website en deze popup wil ik maar 1x laten zien! nu hebben genoeg mensen een popup blokker dus als mensen de pagina reloaden dan krijgen ze de popup niet meer te zien. Nu wil ik alleen de popup laten verdwijnen als de popup daadwerkelijk is geopend.. hoe realiseer ik dit?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  woensdag 7 februari 2007 @ 20:03:09 #33
87845 SynchroSteve
Synchronous Insane
pi_46084916
quote:
Op woensdag 7 februari 2007 19:50 schreef Chandler het volgende:
Leuke vraag denk ik:

Stel ik wil een POPUP op een website en deze popup wil ik maar 1x laten zien! nu hebben genoeg mensen een popup blokker dus als mensen de pagina reloaden dan krijgen ze de popup niet meer te zien. Nu wil ik alleen de popup laten verdwijnen als de popup daadwerkelijk is geopend.. hoe realiseer ik dit?
Met een cookie?
pi_46096459
Cookie wordt toch ook aangemaakt wanneer de popup zich niet laat zien?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 8 februari 2007 @ 09:51:32 #35
85514 ralfie
!Yvan eht nioj
pi_46097051
quote:
Op donderdag 8 februari 2007 09:25 schreef Chandler het volgende:
Cookie wordt toch ook aangemaakt wanneer de popup zich niet laat zien?
Je kunt de popup het koekje laten bakken
pi_46108906
true true, ik zal er eens naar kijken
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_46296097
Een andere vraag.

Ik heb de volgende scripts

popback.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script language="javascript">
function popUp()
{
    day = new Date();
    id = day.getTime();
    window['page'+id] = window.open('popback1.html', id , 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=0');
}
</script>

<form method="post" name="userinfo">
    <input type="text" name="name"><br/>
    <input type="text" name="cijfer"> - <a href="#" onClick="javascript:popUp();">Select</a><br/>
    <input type="submit" name="send" value="Verstuur">
</form>


en popback1.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script language="javascript">
function returnVariable(formName, fieldName, content)
{
  opener.document.forms[formName].elements[fieldName].value = content;
}

function wclose()
{
    window.close();
}
</script>

<form name="cijfertjes">
    <input type="text" name="cijfer"> 
    <input type="submit" name="Verzend" onclick="returnVariable('userinfo','cijfer',  this.form.elements['cijfer'].value); wclose();">
</form>


Nu wil ik eingelijk het volgende.. De popup zit nu vast aan 1 veld, maar ik zou eingelijk variabelen mee willen geven aan de popup zodat ik de return veld variabel kan maken.

Heeft iemand een idee

ook van wat ik bedoel?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  woensdag 14 februari 2007 @ 14:40:47 #38
85514 ralfie
!Yvan eht nioj
pi_46296526
je kunt je variabelen in de url meegeven, een beetje zoals php en $_GET:

1
2
3
//popback.html
var returnvar='cijfer';
...window.open('popback1.html?returnvar='+returnvar...

en deze dan uitlezen dmv substrings vanaf window.location.href

óf je leest de variabele rechtstreekt uit van de opener:
1
2
//popback1.html
onclick=returnvariable(opener.returnform, opener.returnvar, this.form.elements['cijfer'].value)"

Waar returnform en returnvar de variablen in de opener zijn met de juiste waarden:;
1
2
3
//popback.html
var returnform='userinfo';
var returnvar='cijfer';
pi_46302126
Ik heb nu dit

1
2
3
4
5
6
7
8
9
10
11
12
<script language="javascript">
function colPalet(value)
{
    day = new Date();
    id  = day.getTime();

    var retvalue = value;

    window['page'+id] = window.open('./layout/layout_colors.html?varname=' + value, id , 'width=300,height=200,toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=0');

}
</script>


en dan de popup

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script language="javascript">
function returnVariable(fieldName, content)
{
  opener.document.forms['colortable'].elements[fieldName].value = content;
}

function wclose()
{
    window.close();
}

function SendColor(value)
{
    alert(opener.retvalue);
    returnVariable(opener.varname, value)
}
</script>

<MAP name=map_webpal>

<!--- Row 1 --->

<AREA shape=RECT coords=2,2,18,18 href="javascript:SendColor('#330000')">
... etc


maar krijg een undefined te zien bij de alert in FF en IE :X why?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  woensdag 14 februari 2007 @ 18:33:30 #40
85514 ralfie
!Yvan eht nioj
pi_46302472
Je definieert retvalue in een functie... Zelfs een simpele taal als Javascript kent scoping
pi_46303864
omg, je hebt gelijk... heb het nu anders aangepakt en gewoon een variabel gezet in de geopende window

bv (even uit het hoofd)

opener.valuename = 'value';

The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_46492580
Ik heb een textbox met als value een datum in het volgende formaat:
1DD-MM-YYYY

Nu wil ik de dag die er op volgt weten, en weer terugschrijven. Mijn code:
1
2
3
4
5
6
7
var currentdate = document.getElementById('chosendate').value;
var newdate = new Date(currentdate.substring(6,10), currentdate.substring(3,5) - 1, currentdate.substring(0,2));
newdate.setTime(newdate.getTime() - 86400000);
newday = newdate.getDate();
newmonth = newdate.getMonth() +1;
newyear = newdate.getFullYear();
changevalue(newday + "-" + newmonth + "-" + newyear,'chosendate');


Het werkt prima, het enige nadeel van getDate en getMonth is dat ze er geen nul voor plakken wanneer de integer uit 1 digit bestaat (januari = 1, moet 01 zijn). Moet ik hier met een lapje code handmatig een 0 aan plakken, of is er een variant op getDate en getMonth?

Edit

Dat kon nog korter dan ik dacht
1
2
if (newday<=9) newday = "0" + newday;
if (newmonth<=9) newmonth = "0" + newmonth;


En voor de nieuwsgierige personen de volledige code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function dateButtons(dir){
   var currentdate = document.getElementById('chosendate').value;
   var newdate = new Date(currentdate.substring(6,10), currentdate.substring(3,5) - 1, currentdate.substring(0,2));

   if (dir == 'left')
      newdate.setTime(newdate.getTime() - 86400000);
   
   else if (dir == 'right')
      newdate.setTime(newdate.getTime() + 86400000);
   

   newday = newdate.getDate();
   if (newday<=9) newday = "0" + newday;
   newmonth = newdate.getMonth() +1;
   if (newmonth<=9) newmonth = "0" + newmonth;
   newyear = newdate.getFullYear();

   changevalue(newday + "-" + newmonth + "-" + newyear,'chosendate');
}


[ Bericht 35% gewijzigd door Geqxon op 20-02-2007 16:14:23 ]
pi_46508061
Javascript heeft standaard geen formatting functies, eigenlijk best onhandig. Ik heb deze functies een keer gemaakt. Ik ze nooit echt gebruikt, en ook niet grondig getest.

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
/*
   Converts the date to string using provided formatting.
   %D = full date (%d/%m/%Y)
   %T = full time (%H:%i:%s)
   %Y = year (4 digits)
   %y = year (2 digits)
   %m = month (01 - 12)
   %d = day (01 - 31)
   %H = hours (01 - 24)
   %h = hours (01 - 12)
   %i = minutes (01 - 59)
   %s = seconds (01 - 59)
   %A = AM/PM
   %% = %
*/
Date.prototype.format = function(format) {
   format = format.replace(/%D/g, "%d/%m/%Y");
   format = format.replace(/%T/g, "%H:%M:%S");

   format = format.replace(/%Y/g, this.getFullYear());
   format = format.replace(/%y/g, (this.getFullYear() % 100).toString().padLeft(2, '0'));
   format = format.replace(/%m/g, (this.getMonth () + 1).toString().padLeft(2, '0'));
   format = format.replace(/%d/g, this.getDate().toString().padLeft(2, '0'));

   format = format.replace(/%H/g, this.getHours().toString().padLeft(2, '0'));
   format = format.replace(/%h/g, ((this.getHours() + 11) % 12 + 1));
   format = format.replace(/%i/g, this.getMinutes().toString().padLeft(2, '0'));
   format = format.replace(/%s/g, this.getSeconds().toString().padLeft(2, '0'));
   format = format.replace(/%A/g, (this.getHours() < 12 ? "AM" : "PM"));
   format = format.replace("%%", "%");

   return format;
}

/*
   Pads a string on the left to a certain length with another string.
*/
String.prototype.padLeft = function(length, padding) {
   if (padding == '' || padding == null) padding = ' ';
   var result = this;
   var n = (length - this.length);
   if (n > 0) {
      while (padding.length < n) {
         padding += padding;
      }
      result = padding + result;
      result = result.substr(length - result.length);
   }
   return result;
}


1
2
3
var d = new Date();
var s = d.format('%D %T');
alert(s);


Date.format() kan ook nog wel wat geoptimaliseerd worden
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_46510286
Mooie functie, die gaat even gebookmarked worden

Voor simpele dingen om bijvoorbeeld binnen een functie de huidige datum te verkrijgen (in bovenstaand formaat), gebruik ik PHP
  FOK!-Schrikkelbaas dinsdag 27 februari 2007 @ 16:04:18 #45
1972 Swetsenegger
Egocentrische Narcist
pi_46735494
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
   <head>
      <title>test</title>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      <script type="text/javascript">
      document.getElementById('display').innerHTML= 'test';
      </script>
   </head>
   <body>
      <div id="display" name="display">
         leeg
      </div>
   </body>
</html>
quote:
document.getElementById('display') has no properties
Ik begrijp niet wat ik fout doe?
pi_46735636
Zo uit mijn hoofd zou ik zeggen dat het niet werkt omdat het javascript uitgevoerd wordt nog voordat de div "display" op het scherm getekend is / geinitialiseerd is. Misschien er een functie van maken, en die in de onload gooien?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
   <head>
      <title>test</title>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      <script type="text/javascript">
         function test(){
               document.getElementById('display').innerHTML= 'test';
         }
      </script>
   </head>
   <body onload="test()">
      <div id="display" name="display">
         leeg
      </div>
   </body>
</html>
  FOK!-Schrikkelbaas dinsdag 27 februari 2007 @ 16:09:51 #47
1972 Swetsenegger
Egocentrische Narcist
pi_46735708
quote:
Op dinsdag 27 februari 2007 16:08 schreef Geqxon het volgende:
Zo uit mijn hoofd zou ik zeggen dat het niet werkt omdat het javascript uitgevoerd wordt nog voordat de div "display" op het scherm getekend is / geinitialiseerd is. Misschien er een functie van maken, en die in de onload gooien?
Dit is de versimpelde versie, hij wordt aangeroepen door een functie die na een submit wordt aangeroepen.
pi_46735788
Weet je zeker dat het niet ergens anders in zit? De code zoals ik die aan mijn post gehangen heb werkt onder Safari 2.0 namelijk prima, foutloos.
pi_46736912
edit, lezen.

Ik heb trouwen geen probs met je script, werkt direct, misschien toch ff de volledige code?

[ Bericht 83% gewijzigd door Darkomen op 27-02-2007 16:46:38 ]
  FOK!-Schrikkelbaas dinsdag 27 februari 2007 @ 16:58:37 #50
1972 Swetsenegger
Egocentrische Narcist
pi_46737722
Opgelost, klein foutje met returns
pi_46740711
Gaaf m'n op gebruikt (tevens tvp )
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 08:49:48 #52
1972 Swetsenegger
Egocentrische Narcist
pi_46762296
Nieuw probleem.
Uit een form komen een paar values die ik met de volgende regel code naar een textarea schrijf:

1document.getElementById('display').innerHTML+= '0000'+form.kenmerk.value+form.gba.value+form.bsn.value+'\r\n';

uiteraard met enkele slashes, maar dit om de fokbug te vermijden
Dat gaat goed, in mijn textarea verschijnt elke invoer netjes regel voor regel op een newline.
Maaaar... deze textarea moet uiteindelijk naar een txt file geschreven worden, waarvoor ik de v olgende code gebruik

1
2
3
4
5
6
7
function WriteToFile(sText)
      {
      var fso = new ActiveXObject("Scripting.FileSystemObject");
      var FileObject = fso.OpenTextFile("C:\Temp\PimFile.txt", 2, true,0); // 8=append, true=create if not exist, 0 = ASCII
      FileObject.write(sText)
      FileObject.close()
      }

Deze schrijft prachtig naar een txt file, maar mijn newlines zijn weg :?
Als ik in dezelfde textarea tussen 2 regels in ga staan, de door mijn code gegenereerde newline weghaal en een harde enter geef... doet hij het wel.

Iemand een idee hoe dit op te lossen?
pi_46762601
En hoe roep je sText aan, met een "this.value" ?

Als workaround zou je kunnen werken met een string replace:
1
2
inhoud = new String(sText);
inhoud.replace("n","rn");
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 09:15:57 #54
1972 Swetsenegger
Egocentrische Narcist
pi_46762685
quote:
Op woensdag 28 februari 2007 09:10 schreef Geqxon het volgende:
En hoe roep je sText aan, met een "this.value" ?

Als workaround zou je kunnen werken met een string replace:
[ code verwijderd ]
nee met document.naam.value
Ja ik heb in de WriteToFile functie de volgende regel toegevoegd

1sText = sText.replace(/\n/g,"test")


zowel met \n als \r\n geprobeerd.
Maar er wordt geen newline gevonden, er staat een spatie....
Hmz, eens kijken of hij die wel vind
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 09:16:55 #55
1972 Swetsenegger
Egocentrische Narcist
pi_46762706
hij kan ik trouwens een string aanvullen met 0'en tot een bepaalde lengte?
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 09:22:51 #56
1972 Swetsenegger
Egocentrische Narcist
pi_46762802
dit werkt
1sText = sText.replace(/\s+/g,"\r\n")

wazig, maar goed.
  woensdag 28 februari 2007 @ 09:24:40 #57
12880 CraZaay
prettig gestoord
pi_46762838
Stomme vraag misschien, maar waarom gebruik je de Level 0 DOM en Level 1 DOM door elkaar? Is het niet logischer om alleen de Level 1 DOM te gebruiken, omdat die toch minimaal nodig is om je script uit te voeren?

Niet dat de Level 0 DOM niet ondersteunt wordt door alle browsers die ook 1 ondersteunen hoor, maar ik gebruik ze persoonlijk ter consistentie niet door elkaar. Of ben ik een purist?
pi_46762848
quote:
Op woensdag 28 februari 2007 09:16 schreef Swetsenegger het volgende:
hij kan ik trouwens een string aanvullen met 0'en tot een bepaalde lengte?
1
2
3
4
5
6
7
8
var pad = '0';
var teststring = 'jan';
var padlength = 20;
var stringlength = teststring.length;

for (var i = 0; i <  (padlength - stringlength); i++){
   teststring += pad;
}


Zo uit mijn hoofd, moet het nog even debuggen. Helaas heeft javascript niet een soort van str_pad (string pad), in ieder geval niet voor zover ik dat kan zien.

/edit: Denkfoutje gefixt.
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 09:56:59 #59
1972 Swetsenegger
Egocentrische Narcist
pi_46763576
quote:
Op woensdag 28 februari 2007 09:25 schreef Geqxon het volgende:

[..]
[ code verwijderd ]

Zo uit mijn hoofd, moet het nog even debuggen. Helaas heeft javascript niet een soort van str_pad (string pad), in ieder geval niet voor zover ik dat kan zien.

/edit: Denkfoutje gefixt.
Ah ok, er is geen standaard functie dus
pi_46764147
En dan nog ingekort vanwege mijn drang naar perfectie:

1
2
3
4
5
6
7
var pad = '0';
var teststring = 'jan';
var padlength = 20;

while (teststring.length < padlength){
   teststring += pad;
}
  woensdag 28 februari 2007 @ 10:38:51 #61
85514 ralfie
!Yvan eht nioj
pi_46764544
1
2
3
4
5
6
7
String.prototype.pad=function( len ,char)
{
   if (char==null) char='_';
   var t=this;
   while(t.length<len) t+=char;
   return t;
};


krijgen je strings een handige pad functie erbij

1
2
3
var str="hallo";
document.write(str.pad(10,'x')); //writes halloxxxxx;
document.write(str.pad(10));     //writes hallo_____; 

Altijd makkelijk als je zoiets vaker moet gebruiken
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 11:50:43 #62
1972 Swetsenegger
Egocentrische Narcist
pi_46766403
thanks ralfie.

hier niemand op zoek naar een technische webmaster functie?
pi_46768823
quote:
Op woensdag 28 februari 2007 10:38 schreef ralfie het volgende:

[ code verwijderd ]

krijgen je strings een handige pad functie erbij
[ code verwijderd ]

Altijd makkelijk als je zoiets vaker moet gebruiken
Dit is zeker handig zeg!
tevens tvp
pi_46770521
quote:
Op woensdag 28 februari 2007 10:38 schreef ralfie het volgende:

[ code verwijderd ]

krijgen je strings een handige pad functie erbij
[ code verwijderd ]

Altijd makkelijk als je zoiets vaker moet gebruiken
Default padden met een underscore vind ik een beetje vreemd (is natuulijk makkelijk aan te passen). Als de padding langer is dan 1 teken dan klopt de lengte niet altijd. Als je veel moet padden kan ie wel eens langzaam worden.

Ik zou 'm ook padRight() noemen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 15:13:45 #65
1972 Swetsenegger
Egocentrische Narcist
pi_46773291
quote:
Op woensdag 28 februari 2007 13:56 schreef SuperRembo het volgende:

Als de padding langer is dan 1 teken dan klopt de lengte niet altijd.
*bekijkt code*
die snap ik niet?
  woensdag 28 februari 2007 @ 15:41:04 #66
85514 ralfie
!Yvan eht nioj
pi_46774347
quote:
Op woensdag 28 februari 2007 15:13 schreef Swetsenegger het volgende:

[..]

*bekijkt code*
die snap ik niet?
als je padding bijv 3 tekens is, wordt de uiteindelijke string langer als wat ie had moeten zijn, bij

1
2
3
str="hallo";
str.pad(10,"hoi")
// geeft hallohoihoi, wat 11 tekens is
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 15:42:35 #67
1972 Swetsenegger
Egocentrische Narcist
pi_46774399
quote:
Op woensdag 28 februari 2007 15:41 schreef ralfie het volgende:

[..]

als je padding bijv 3 tekens is, wordt de uiteindelijke string langer als wat ie had moeten zijn, bij
[ code verwijderd ]
Ik had er nog niet eens bij nagedacht dat je padding langer zou willen maken dan 1 teken, maar ja... dan heb je inderdaad een probleem.

Ik dacht dat SuperRembo bedoelde wanneer er meer dan 1 'naloop' teken noodzakelijk is....
pi_46774501
quote:
Op woensdag 28 februari 2007 15:41 schreef ralfie het volgende:

[..]

als je padding bijv 3 tekens is, wordt de uiteindelijke string langer als wat ie had moeten zijn, bij
[ code verwijderd ]
Wat op te lossen is door met de substrings van de padding te gaan werken, en te breaken als de lengte te lang is.
  FOK!-Schrikkelbaas woensdag 28 februari 2007 @ 16:04:14 #69
1972 Swetsenegger
Egocentrische Narcist
pi_46775244
quote:
Op woensdag 28 februari 2007 15:45 schreef Geqxon het volgende:

[..]

Wat op te lossen is door met de substrings van de padding te gaan werken, en te breaken als de lengte te lang is.
1if (char==null || char.length>1) char='_';
pi_46775359
Ok dan, mijn padding functies Ik heb de syntax ongeveer gelijk gehouden aan de functies in .NET.
De default padding is met spaties. De paddign string mag ook langer zijn dat 1 teken.

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
// Helper function for String.padLeft() and String.padRight()
String.prototype._padHelper = function(totalLength, paddingString, isRightPadding) {
   var padding = paddingString;
   if (!padding || padding.length == 0) padding = ' ';
   var s = this.toString();
   var padLength = totalLength - s.length;
   if (totalLength >= 0) {
      while (padding.length < padLength) padding += padding;
      if (isRightPadding) {
         s += padding.substr(padding.length - padLength);
      } else {
         s = padding.substr(0, padLength) + s;
      }
   }
   return s;
};

// Pads a string on the left with a specified padding string to a specified total length.
String.prototype.padLeft = function(totalLength, paddingString) {
   return this._padHelper(totalLength, paddingString, false);
};

// Pads a string on the right with a specified padding string to a specified total length.
String.prototype.padRight = function(totalLength, paddingString){
   return this._padHelper(totalLength, paddingString, true);
};


Test:
1
2
3
4
5
6
7
8
9
var out = [];
out.push('foo'.padLeft(5));
out.push('foo'.padLeft(5, 'x'));
out.push('foo'.padRight(5));
out.push('foo'.padRight(5, 'x'));
out.push('foobarbaz'.padLeft(5, 'x'));
out.push(''.padLeft(5, 'x'));
out.push(''.padLeft(5, ''));
alert('"' + out.join('"\n"') + '"');
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_46944444
Ik update een textveld vanuit een select box via select box, dit gaat goed als je de opties met de muis aanklikt, maar niet als je met de pijtjes toetsen op het toetsenbord door de lijst scrolt wanneer deze is ingeklapt
Hoe kan ik dat voorkomen? zodat het veld wel word geupdate?

<select name="forum_naam" id="forum_naam" OnChange="javascript:select_email(document.getElementById('forum_naam').options[selectedIndex].value);">
Options, etc

edit brainstorm: ga nu ff onkeyup/down proberen
edit2: dat wasm

[ Bericht 11% gewijzigd door Darkomen op 05-03-2007 16:26:21 ]
  maandag 5 maart 2007 @ 17:07:29 #72
12880 CraZaay
prettig gestoord
pi_46946547
OnChange="javascript:select_email(document.getElementById('forum_naam').options[selectedIndex].value);"

kan een stuk simpeler overigens:

onchange="select_email(this.value);"
pi_46971814
ja daar dacht ik later pas aan
Maar toch bedankt!

Weet je misschien ook nog een javascript test voor rekening nummers? van bank en giro(postbank)?

Edit, heb iets gevonden, de proef van 11.
Eens kijken hoe dat zit maar, een werkend voorbeeld is ook goed

Oww, en dan nog postbank nr's

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
<script language="javascript">
function elf_proef(id)
{
  var bankrekeningnummer = document.getElementById(id).value;
  //Verwijder alle tekens die geen cijfers zijn
  bankrekeningnummer = bankrekeningnummer.replace(/D/g, "");
  aantal_tekens = bankrekeningnummer.length;
  var som=0;
  // loop door de 9 cijfers met de 11 proef formule
  for (i=1; i<10; i++)
  {
    getal=bankrekeningnummer.charAt(i-1);
    som+=getal*(10-i);
  }
  // geef resultaat van check terug
  if (som % 11==0 && aantal_tekens==9)
  {
    document.getElementById(id).value = bankrekeningnummer;
    return true;
  }
  else
  {
    alert('Dit is geen geldig bankrekeningnummer!');
    document.getElementById(id).value = bankrekeningnummer;
    document.getElementById(id).focus();
 }
}
</script>


[ Bericht 38% gewijzigd door Darkomen op 06-03-2007 13:14:59 ]
  dinsdag 6 maart 2007 @ 13:12:53 #74
12880 CraZaay
prettig gestoord
pi_46972062
Postbank-rekeningen kun je volgens mij niet toetsen. Die worden opvolgend uitgegeven waarna per transactie aan naam/nummer check plaatsvindt afaik.

De bankrekeningnummers kun je inderdaad wel toetsen. En waar je het ook voor gebruikt: sta in je input aub punten, spaties en al dan niet leading zero's toe. Niets zo irritant als een web app die je gaat vertellen hoe je iets precies in moet vullen

edit: Voorkauwwerk http://www.2question.com/demo/elf_proef.html
pi_46972156
oke, dan weet ik dat, en spaties, leading zero's en punten, oke will do, kan er zelf ook niet tegen

Hey, in php heb ik wel een mooie functie, kijken if ik die om kan zetten naar javascript, zit namelijk ook postbak bij
  dinsdag 6 maart 2007 @ 14:09:20 #76
12880 CraZaay
prettig gestoord
pi_46974020
Het is gewoon berekeken, dus met Math en consorten moet je een eind komen

Zou je een relevant stukje Postbank-validatie kunnen posten? Ben benieuwd hoe dat werkt.
pi_46975540
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
function CheckRekeningNummer(string, veld,id){
      var first = string.charAt(0);

      if( (first=="P") || (first=="p") ){
         var error = postbank(string);
      }
      else {
         var error = bankrekening(string);
      }
      return error;
   }


   function bankrekening(string) {
      deel1=string.substring(0,3)
      deel2=string.substring(4,11)
      controle_getal=eval(string.substring(12,14))
      getal=eval(deel1+deel2)

      if (getal%97==controle_getal){}//{window.alert("het rekeningnummer is juist")}
      else{
         return "Het veld Banknummer is onjuist.n";
      }
   }


   function postbank(string) {
      if (string.length<3) {
         return "Het veld Banknummer te kort voor postbanknummer.n"; 
      }
      else if(string.length>7)  {
         return "Het veld Banknummer te lang voor postbanknummer.n";
      }
   }


Dit heb ik ervan gemaakt

[ Bericht 1% gewijzigd door Darkomen op 06-03-2007 15:00:00 ]
  dinsdag 6 maart 2007 @ 16:14:17 #78
12880 CraZaay
prettig gestoord
pi_46978871
Ah, ok. Niet echt validatie of het een bestaand postbanknummer is dus (tenminste: het nummer zal wel bestaan, je kunt alleen niet berekenen of er een typefout gemaakt is).

Ik zou dit soort belangrijke checks overigens ook server side doen. Met Javascript is leuk, maar voorkomt natuurlijk geen verkeerde input.
pi_46979511
Nee, dat is zoals je zei niet te checken
Serversided kijk ik alleen na als ik de inhoud niet vertrouw
Er kunnen maar een paar users bij dit script en het is meer een simpele controle
pi_47002747
Ik wil dus de backgroundkleuren van divjes veranderen. In principe zijn er 3 mogelijkheden te weten:
- de achtergrond is blauw wanneer de muis niet op de div staat en de div ook niet is 'geselecteerd' (mbv een eerdere mouseup) ; tijdelijk effect
- de achtergrond is wit wanneer de muis wel op de div staat, maar de div niet is 'geselecteerd' (mbv een eerdere mouseup) ; tijdelijk effect
- de achtergrond is groen wanneer de div geselecteerd is ; blijvend effect (tot volgende selectie, maar dat moet nog ingebouwd worden)

Na wat lees en denkwerk (jaja) kwam ik op de volgende code... maar dat werkt toch niet helemaal aangezien de div na selectie toch weer blauw wordt als ik met de muis van de div af ga.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script language="javascript">
function colorOver(div){
  if(document.getElementById(div).style.background!="green"){
   document.getElementById(div).style.background="white"
  }
}
function colorOut(div){
  if(document.getElementById(div).style.background!="green"){
   document.getElementById(div).style.background="blue"
  }   
}
function colorUp(div){
document.getElementById(div).style.background="green"
}
</script>


en een van de divjes (totaal zijn er 6, maar allen volgens de zelfde structuur)

1<div id="X" onmouseover="colorOver('X')" onmouseout="colorOut('X')" onmouseup="colorUp('X')"></div>


Bij de 2 if statements heb ik ook al geprobeerd of
1if(!(document.getElementById(div).style.background=="green"))

werkt, maar ook dat werkt niet. Het zal vast wel een simpel en stom klein dingetje zijn, maar ik zie het op dit moment even niet (zal ook wel aan de tijd liggen :P)
ウプピエ 八十三 &lt;&lt; u-pu-pi-e hachi-ju-san, ik denk ik zeg het er maar ff bij :P
pi_47005083
Ik denk dat het niet werkt omdat nadat je style.background='green' zet, de property style.backgroundColor = 'green' wordt gezet.

Is het niet handiger om in een stylesheet de kleuren te definieren en in javascript de classes te veranderen? (bijv. element.className = 'selected')
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  woensdag 7 maart 2007 @ 09:32:12 #82
12880 CraZaay
prettig gestoord
pi_47006047
Je weet zeker dat die functies uit worden gevoerd? Het ziet er namelijk uit alsof dit zou moeten werken op het eerste gezicht.

Korter trouwens:

1
2
3
4
5
6
7
<div onmouseover="colorOver(this)" onmouseout="colorOut(this)" onmouseup="colorUp(this)"></div>

function colorOver(div){
  if (div.style.background != 'green') {
   div.style.background = "white";
  }
}


edit: Even getest, en het script doet precies wat het hoort te doen. Dat dat niet het gewenste gedrag is ligt dus niet aan het script

Je hebt namelijk de background gezet, en niet de backgroundColor. Ook al laat je de positionering e.d. leeg, ze worden toch gedeclareerd. Je had dit eenvoudig zelf kunnen testen met een alert(div.style.background). Je ziet dan dat de waarde hiervan "green none repeat scroll 0% 0%" is. En dat != green

Kortom: backgroundColor gebruiken. En nog beter idd met classNames werken zoals hierboven voorgesteld. Scheiding van gedrag en presentatie enzo.

[ Bericht 16% gewijzigd door CraZaay op 07-03-2007 10:07:11 ]
  woensdag 7 maart 2007 @ 22:19:05 #83
104583 cyberstalker
Een krachtig neen!
pi_47034199
Ik heb een functietje geschreven dat automatisch naar het volgende inputveld gaat wanneer het maximum aantal karakters is ingevuld.

Nu is het probleem dat het de waarde in Fx niet wordt bijgewerkt tot nadat de functie klaar is, terwijl de waarde in Opera direct wordt geupdate.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function auto_focus(event)
{
        var link        =       event.target;
        var inputvalue  =       link.value;
        var next_node   =       nextNode(link);

        if (inputvalue.length + 1 < link.getAttribute('maxlength'))
        {
                return false;
        }

        while (next_node.nodeName != link.nodeName && next_node != null)
        {
                next_node       =       nextNode(next_node);
        }

        if (next_node != null)
        {
                next_node.focus();
        }
}
Dit werkt zo in Firefox, omdat ik nu zelf 1 optel bij inputvalue.length. In opera kun je nu echter een karakter te weinig invullen.

Hoe kan ik dit zo maken dat het in alle browsers goed werkt? Ik gebruik overigens het event keypress:

1
2
3
4
5
6
7
for (i = 0; i < inputs.length; i++)
{
        if (inputs[i].hasAttribute('maxlength'))
        {
                inputs[i].addEventListener('keypress', auto_focus, false);
        }
}
Hope for the best, prepare for the worst.
pi_47035225
Waarschijnlijk zie je bij de keypress event in FF de oude waarde (voor het verwerken van de toetsaanslag), in Opera de nieuwe waarde (na het verwerken van de toetsaanslag). Krijg je wel de nieuwe waarde bij keyup?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_47044569
Interessant scriptje!, en ik denk dat SR gelijk heeft.
pi_47405496
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 makeObject()
{   var x;   
if (window.ActiveXObject) {   
   x = new ActiveXObject("Microsoft.XMLHTTP");   }
else if (window.XMLHttpRequest) {
      x = new XMLHttpRequest();   
   }   
return x;
}
var request = makeObject();

//AJAX the content
var $url;
var $div;
function check_content($url,$div){   
request.open('get', $url);   
request.onreadystatechange = parseCheck_content($div);   
request.send('');}
function parseCheck_content($div){   
if(request.readyState == 1){      
   document.getElementById($div).innerHTML = 'Loading...<br/><img src="spinner.gif" alt=""/>';   
   }   
if(request.readyState == 4){      
var answer = request.responseText;      
document.getElementById($div).innerHTML = answer;   }}


Ik ben bezig met een simel ajaxscriptje. Ik heb het basisscript wekzaam gekregen allen met mijn uitbreiding doet hij het niet.

IE geeft de foutmelding: "typen komen niet overeen".
pi_47406835
request.onreadystatechange verwacht een functie, jij kent er het resultaat van een functie aan toe (die geen waarde terrug geeft).

Lijn je code ook eens netjes uit, dit lijkt nergens op.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_47407316
1request.onreadystatechange = parseCheck_content($div);

Dit roept toch een functie aan? Volgens mij mis ik ergens iets? :@
pi_47408985
request.onreadystatechange is een functie die wordt uitgevoerd als de readystate veranderd. Het moet dus een functie zijn die uitgevoerd kan worden.
Bij jouw script wordt parseCheck_content($div) al uitgevoerd op het moment dat het aan request.onreadystatechange wordt toegekend.

1
2
3
4
5
6
7
8
9
10
11
12
13
function check_content($url, $div) {   
   request.open('get', $url);   
   request.onreadystatechange = function() {
      if (request.readyState == 1) {      
         document.getElementById($div).innerHTML = 'Loading...<br/><img src="spinner.gif" alt=""/>';   
      }   
      if (request.readyState == 4){      
         var answer = request.responseText;      
         document.getElementById($div).innerHTML = answer;   
      }
   }
   request.send('');
}


Waarom gebruik je die $-tekens? Het is toch geen php
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_47413697
Met die $ -tekens kan ik makkelijk zien wat variablen zijn.

Maar ik begrijp nu in ieder geval waar de fout zit! Dank je wel.
Ik zal morgen eens kijken hoe ik dit ga aanpassen.
  dinsdag 20 maart 2007 @ 20:57:24 #91
74523 BaggerUser
ModderFokker!
pi_47487187
het is eigenlijk javascript icm php.. maar krijg de komma's niet goed wordt gek aaaaah (jullie kennen het gevoel vast wel)
<?php
$NAVIGATIE_rechts .= '<li><a href='#' onClick='showHint("ARTIKELEN")'>ARTIKELEN</a></li>';
?>

1
2
3
<script language='javascript'>
document.getElementById("navigatierechts").innerHTML = '<?php echo $NAVIGATIE_rechts; ?>';
</script>



het ligt aan de quotjes etc.. maar ik probeer al een uur te escapen etc maar het wel niet lukken..
De enige echte BaggerUser!
Riemen
fiets kopen
  dinsdag 20 maart 2007 @ 21:15:23 #92
85514 ralfie
!Yvan eht nioj
pi_47487965
1
2
3
<?php
$NAVIGATIE_rechts 
.='<li><a href="#" onClick="showHint(\\\'ARTIKELEN\\\')">ARTIKELEN</a></li>';
?>

even uit mn kopke
  dinsdag 20 maart 2007 @ 21:27:07 #93
74523 BaggerUser
ModderFokker!
pi_47488520
maar 3 \ had ik nog niet geprobeerd.. kan dat ookal

dankjewel!!!! kan ik eindelijk weer een stukje verder!
De enige echte BaggerUser!
Riemen
fiets kopen
pi_47550276
Iemand enig idee waarom:

1
2
3
function aapnootmies(aap,noot){
document.getElementById(aap+noot).value = "Mies!";
}


wel werkt, en onderstaande code:

1
2
3
4
5
function aapnootmies(aap,noot){
for (var i = 0; i <= 2; i++){
document.getElementById(aap+i).value = noot;
}
}


Niet? Ik raak hier een beetje gefrustreerd :P
pi_47550818
is er wel een element met het id aap0?

pi_47551239
Jep. Ik heb het nu compleet opnieuw geschreven, waarna het opeens wel werkte. Zeer vreemd, want mijn blote oog kon geen verschil ontdekken

Ik dacht eigenlijk meer dat het kwam door de manier waarop ik de variabele I opvroeg.
pi_47551425
Zeer zeker erg vreemd, omdat ik em heb gekopieerd van jou en hij werkt wel.
http://www.danielpunt.nl/geqxie.htm
pi_47551932
1
2
3
for (var counter=start; counter<=end; counter++){
   document.getElementById(field+counter).value = document.getElementById(field+id).value;
}

1
2
3
4
   
for (var i=start; i<=end; i++){
   document.getElementById(field+i).value = document.getElementById(field+id).value;
}


In mijn geval werkte het tweede stukje code flawless :)
pi_47588909
Ik vraag me iets af, mijn kennis van JS is 0:
Ik heb een stukje HTML waarin ik meerdere foto's in dezelfde pagina om de beurt wil weergeven. Kan ik dan in JS iets van een array maken met de bestandsnamen en dat ik dan op 'volgende' kan klikken dat de volgende foto geladen wordt, of eventueel heel het HTML bestand opnieuw inclusief de volgende foto?
pi_47589050
Ja dat kan. Gewoon de src van het plaatje veranderen met javascript.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')