Toon posts:

[JavaScript] Append returning function

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De volgende HTML code werkt perfect:
HTML:
1
<input type="text" onkeypress="return(intOnly(event))" />

Maar vervolgens werkt de volgende JavaScript code op exact dezelfde plek niet?
JavaScript:
1
myElement.onkeypress = 'return(intOnly(this));';

Ook dit werkt niet:
JavaScript:
1
myElement.onkeypress = function () {return(intOnly(this));};


Een vergelijkbare functie appenden zónder het return-statement, werkt daar wel gewoon. Mijn vraag is dus, heb ik de return op de juiste manier in de te appenden string opgenomen?

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

in de html-onkeypress ga je er vanuit dat intOnly een event object accepteert. Terwijl je vervolgens this in diezelfde functie gaat stoppen. Maar this is bij een event op een element altijd het element waarop het event afgevuurd werd, en niet het event-object. Misschien heeft het daarmee te maken.

De correcte manier is volgens mij zoiets:
JavaScript:
1
2
3
myElement.onkeypress = function(evt) {
  return intOnly(evt || window.event);
};

IE stopt het event-object nml in window.event, terwijl een echte browser het als argument meegeeft. Ik denk dat dat is wat je nodig hebt.

日本!🎌