[JS] Geen plus als string?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Topicstarter
Tijdens de proef met Ajax chat pagina ontdek ik dat plus (+) karakter als enige niet doorheen komt.
Deze kan ik wel invoeren in de tekstveld. (geen <form> maar keypress aflezen die enter eruithaal voor uitvoeren scriptcodes, dus direct .value lezen en verwerken via ajax naar php script om vervolgens op te slaan in DB en laten afdrukken via innerHTML. Dat gaat met responseText.
Maar bij ophalen gegevens met document.getElementById('xxx').value merk ik dat + karakter en alles wat daarachter komt verdwenen is.

Dat is niet zo mooi voor chat pagina. Hoe kan ik die speciale karakter, welke in JS vooral gebruikt is om strings samen te voegen, toch nog als echte string gebruiken en op pagina laten posten via innerHTML.

Wie heeft een tip hiervoor? Alvast dank.
Ik probeer ook + te parsen naar & # 6 8 ; als UTF-8 code, maar dat heeft weinig nut :( Het lijkt allang verdwenen te zijn voordat ik wat probeer.
Een zwakke punt in JS?

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
urlencoden ;)

In Javascript heet dat escape() trouwens.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 20-08 09:22

Clay

cookie erbij?

+ escapen doet nix ;) blijft een +
maar,
HTML:
1
2
3
4
5
<input type="text" id="dinges" value="lorem + ipsum + dolor" />
<script type="text/javascript">
var input = document.getElementById('dinges');
alert(input.value); // lorem + ipsum + dolor
</script>


werkt gewoon prima :? denk dat je probleem ergens anders zit.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Acties:
  • 0 Henk 'm!

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Topicstarter
Na googlen kom ik op deze mooie pagina
http://xkr.us/articles/javascript/encode-compare/

Al snel is encodeURIComponent() het antwoord. Daar komt + wel goed doorheen. Met escape() gaat het niet goed.

Dus dat is enige code dat + kan encoden.

Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Probeer de encodeURI-functie 'ns.
&#68; wordt neem ik aan als platte tekst doorgegeven? JavaScript zal dit niet omzetten naar een +.

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Topicstarter
Icelus schreef op donderdag 13 maart 2008 @ 21:37:
Probeer de encodeURI-functie 'ns.
&#68; wordt neem ik aan als platte tekst doorgegeven? JavaScript zal dit niet omzetten naar een +.
Die &#68; is een voorbeeld om te kunnen JS-parsen, maar dat lukt niet, dus zocht ik wat anders. Hieronder is zinloos: (ff spatie ertussen omdat nohtml niet werkt in code veld)
JavaScript:
1
strParse=replace(strParse,"+","& #68;");


Je geeft aan dat encodeURI ook werkt, maar volgens pagina boven zal deze code + ook niet encoden, net als escape doet dat ook niet. En dus niet bruikbaar.
JavaScript:
1
var tekst = encodeURIComponent(document.getElementById('tekstveld').value);

Dat doet de trick.

[ Voor 9% gewijzigd door MrDummy op 13-03-2008 21:50 ]

Pagina: 1