abonnement Unibet Coolblue Bitvavo
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
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')