enter vanuit input=text in een form

Pagina: 1
Acties:

  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
Hallo, Wijze mannen.

Ik vat die events maar niet goed, nu ben ik effe moe van mijn eigen geklooi.
Wie weet het volgende: Ik wil door omstandigheden de gebruiker een waarde laten invoeren,waarbij met een 'enter' vanuit het input veld deze gebruikt kan worden.Ik ben al blij als hij het in IE doet.Ik heb het gezocht in vele variaties in de volgende richting, maar kwam niks uit.


<FORM>
<INPUT TYPE="TEXT" ID="input" VALUE="300" SIZE="2" onkeydown=useValue() >
</FORM>

function useValue()
{
if(window.event.keyCode==13) // d.w.z is 'enter'
{
divX.style.width=input.value + "px"
}
}


Ik vond op http://www.cs.tut.fi/~jkorpela/forms/enter.html

de volgende oplossing:
----------------------------------------------------------------------------------
function entsub(myform) {
if (window.event && window.event.keyCode == 13)
myform.submit();
else
return true;}


and use onkeypress="return entsub(this.form)" in the input type="text" tags.
-----------------------------------------------------------------------------------------------------
Probleem wordt dat je soms niet meer gewoon kunt editen in het tekst veld,
er staat dus al een begin waarde in, als je wat delete en erbij typt springt de oude waarde er weer tussen, of er gebuert niks op de enter.


Thanx in advance.

A friend is one who knows us, but loves us anyway.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je kan gebruik maken van het feit dat een enter in een textfield van een form met maar 1 textfield een submit triggered:
HTML:
1
2
3
<form action="#" onsubmit="doeiets();return false;">
<input type="text" />
</form>

Intentionally left blank


  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
Lekker snelle reactie, ga ik gelijk eens proberen.
Die action "#" heeft dat een speciale betekenis. ??
Kwam ik al vaker tegen, maar in mijn boekjes kwam ik er niks over tegen.

A friend is one who knows us, but loves us anyway.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Oysterhoys schreef op 16 mei 2004 @ 00:41:
Lekker snelle reactie, ga ik gelijk eens proberen.
Die action "#" heeft dat een speciale betekenis. ??
Kwam ik al vaker tegen, maar in mijn boekjes kwam ik er niks over tegen.
In dit geval is de # gewoon een dummy; door de return false wordt er niet gesubmit. Normaal gesproken zal enkel een # de pagina naar boven scrollen; het verwijst namelijk naar een (in dit geval lege) positie in de pagina:

HTML:
1
2
3
<a href="#content">scroll naar de content"</a>
...
<p id="content">hier de content</p>

Intentionally left blank


Verwijderd

Huh?

Als je een <form> met een enkel tekstveld hebt en je drukt op 'Enter' wil IE zowiezo posten. Dus wat is precies je probleem?
Misschien moet je je script weggooien en testen met een simpel form met een enkel text-veld.

edit:
In IE is het wel zo dat als je ooit iets hebt ingevuld in het veld je die waardes terugkrijgt in een dropdown. Als je muis toevallig onder het invoerveld staat en je drukt op 'Enter', dan pakt ie de oude ingevoerde waarde. Bijzonder vervelend, maar niet te ontkomen.

[ Voor 41% gewijzigd door Verwijderd op 16-05-2004 00:50 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 16 mei 2004 @ 00:48:
Huh?

Als je een
met een enkel tekstveld hebt en je drukt op 'Enter' wil IE zowiezo posten. Dus wat is precies je probleem?
Misschien moet je je script weggooien en testen met een simpel form met een enkel text-veld.
Hij wil geen form submitten maar een JS functie uitvoeren...

Het kan trouwens wel met het afvragen van de keycode bij een TB event, maar crossbrowser zit dat wat lastiger vanwege het verschil in event-models. Het onsubmit truukje is dan gewoon handiger..

[ Voor 21% gewijzigd door crisp op 16-05-2004 00:51 ]

Intentionally left blank


Verwijderd

crisp schreef op 16 mei 2004 @ 00:49:
[...]

Hij wil geen form submitten maar een JS functie uitvoeren...

Het kan trouwens wel met het afvragen van de keycode bij een TB event, maar crossbrowser zit dat wat lastiger vanwege het verschil in event-models. Het onsubmit truukje is dan gewoon handiger..
Ja maar wat wil de TS nou precies? 'px' achter de veldwaarde plakken? En moet de handling dan alleen op de client gebeuren of moet de server iets terugroepen?

  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
Inderdaad het gaat om de JS. Daarom zocht ik het niet in de submit. Mooi truc, ik begreep die return false ook eerst al niet.
Komt ook door dat er in die functies met events, de hele tijd met return falses gestrooid wordt. Ik was ze ven beu. Nu was dat ook wel een ingewikkelde functie.
Te meer mijn huidige frustratie dat je oplossing het niet doet ?
Ik zal hem nog maar eens drie maal omdraaien.
In werkelijkheid is de form ook wel wat ingewikkelder, misschien dat andere factoren verstoren ?!

A friend is one who knows us, but loves us anyway.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 16 mei 2004 @ 00:54:
[...]


Ja maar wat wil de TS nou precies? 'px' achter de veldwaarde plakken? En moet de handling dan alleen op de client gebeuren of moet de server iets terugroepen?
Hij wil volgens mij de style van een HTML element aanpassen; client-side dus.
Oysterhoys schreef op 16 mei 2004 @ 00:59:
Inderdaad het gaat om de JS. Daarom zocht ik het niet in de submit. Mooi truc, ik begreep die return false ook eerst al niet.
Komt ook door dat er in die functies met events, de hele tijd met return falses gestrooid wordt. Ik was ze ven beu. Nu was dat ook wel een ingewikkelde functie.
Te meer mijn huidige frustratie dat je oplossing het niet doet ?
Ik zal hem nog maar eens drie maal omdraaien.
In werkelijkheid is de form ook wel wat ingewikkelder, misschien dat andere factoren verstoren ?!
Dan zal je wat specifieker moeten zijn.. ;)

[ Voor 49% gewijzigd door crisp op 16-05-2004 01:01 ]

Intentionally left blank


  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
het gaat alleen om de client.
ik zet voor de zekerheid altijd px erachter, al hoeft dat geloof ik niet een in Javascript, ook omdat ik veel met CSS werk,
als je zelf een voorbeelDiv.style.top.value opvraagd krijg je ook een waarde met px

A friend is one who knows us, but loves us anyway.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Oysterhoys schreef op 16 mei 2004 @ 01:02:
het gaat alleen om de client.
ik zet voor de zekerheid altijd px erachter, al hoeft dat geloof ik niet een in Javascript, ook omdat ik veel met CSS werk,
als je zelf een voorbeelDiv.style.top.value opvraagd krijg je ook een waarde met px
een maat-aanduiding voor waarden in CSS is idd verplicht; sommige browsers doen er anders niets mee tenzij de waarde 0 is.
Nu is het aanspreken van elementen dmv voorbeeldDiv.style ook niet zo netjes; enkel IE maakt bepaalde elementen met een ID (ten onrechte) global binnen het window object. Normaal gesproken spreek je een element aan mbv getElementById()

Intentionally left blank


  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
Nu heb ik het.!!

In de editor van HOMESITE werkt het niet, maar wel in de browser.
Valt me tegen van Homesite.

Misschien deden mijn eerdere oplossingen het ook wel.

Dank Crisp CU Later

A friend is one who knows us, but loves us anyway.


  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
Bedankt voor de getElement tip.
slordigheid zat hem in het voorbeeld.
Ik gebruik het altijd.
maar dat is zoveel typewerk, in Homesite pak ik dan mijn 'snippet'

Ik streef naar crossbrowser, hoewel met die events wordt je daar niet vrolijk van.

Nogmaals dankl

A friend is one who knows us, but loves us anyway.


Verwijderd

Ah now where getting somewhere else:)

Dus...
Je wil een functie clientside uitvoeren. In dit geval een style dynamisch aanpassen?

Anyway: Die 'return false' zorgt ervoor dat het <form> niet gepost wordt naar de server. Dit is namelijk DE rem die je bij alle form-tests gebruikt. 'Is het form OK? return true;. Staat er een fout in het form? return false;.'

Misschien moet je zoiets proberen:
code:
1
2
3
4
5
6
7
8
9
10
<script language="javascript" type="text/javascript">
function fnMySubmit() {
  var myInputValue = document.myForm.myInput.value;
  alert("Mijn nieuwe waarde: "+myInputValue+"px;");
  return false;
}
</script>
<form name="myForm" action="" method="post" onSubmit="fnMySubmit();">
  <input name="myInput" id="myInput" type="text">
</form>


ff uit mijn hoofd. Als je dit in een HTML pagina plakt krijg je een alertbox na 'Enter' met de veldwaarde + 'px'.

[ Voor 15% gewijzigd door Verwijderd op 16-05-2004 01:21 ]


Verwijderd

Oysterhoys schreef op 16 mei 2004 @ 01:08:
Nu heb ik het.!!

In de editor van HOMESITE werkt het niet, maar wel in de browser.
Valt me tegen van Homesite.

Misschien deden mijn eerdere oplossingen het ook wel.

Dank Crisp CU Later
Altijd van de situatie in je browser uitgaan. NOOIT van je (WYSIWYG-)editor. :D

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

OBNSW: je vergeet dat je de returnwaarde vanuit je eventhandler moet teruggeven; verder waren mijn aanwijzingen geloof ik al duidelijk genoeg ;)

btw, probeer voortaan ook de [ code ] tags te gebruiken...

Intentionally left blank


  • Oysterhoys
  • Registratie: Juni 2003
  • Laatst online: 15-12-2024
OBNSW ook bedankt, zoiets moet het inderdaad worden,
je blijft ook leren hé, hoeveel miljoen valkuiltjes zijn er wel niet.

A friend is one who knows us, but loves us anyway.


Verwijderd

Oh en als je zonodig X-browser wilt werken, vergeet dan absoluut even niet te kijken op: http://www.quirksmode.org/

getElementById() werkt namelijk alleen bij moderne browers. IE kent ook 'document.all.xxx'. Om maar niet te spreken van de oude generaties Netscape.

Verwijderd

crisp schreef op 16 mei 2004 @ 01:17:
btw, probeer voortaan ook de [ code ] tags te gebruiken...
Consider it done ;)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 16 mei 2004 @ 01:21:
Oh en als je zonodig X-browser wilt werken, vergeet dan absoluut even niet te kijken op: http://www.quirksmode.org/

getElementById() werkt namelijk alleen bij moderne browers. IE kent ook 'document.all.xxx'. Om maar niet te spreken van de oude generaties Netscape.
pffft, je praat hier over IE4 en NS4 hoor; weet je wel hoe oud die zijn en hoeveel mensen die gedrochten nog gebruiken?

En PPK is wel aardig, maar een beetje arrogant en soms slordig qua JS (tsja, dat arrogant hebben we dan gemeen :P )

Intentionally left blank


Verwijderd

crisp schreef op 16 mei 2004 @ 01:26:
[...]

pffft, je praat hier over IE4 en NS4 hoor; weet je wel hoe oud die zijn en hoeveel mensen die gedrochten nog gebruiken?

En PPK is wel aardig, maar een beetje arrogant en soms slordig qua JS (tsja, dat arrogant hebben we dan gemeen :P )
That's not an argument. Ken je je statistieken? En hoeveel personen komen nog langs met NN4.7x? :D Aan de andere kant ken ik ook nog mensen die met Wfw 3.11 en IE 5.01 gebruiken. :( En wat te denken van PDA's en Mobiles of IEs op Macs?
Moraal van het verhaal: Of hou rekening met iedereen of ga uit van 95/99% van je bezoekers en bied de rest een alternatief. :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 16 mei 2004 @ 01:50:
[...]


That's not an argument. Ken je je statistieken? En hoeveel personen komen nog langs met NN4.7x? :D Aan de andere kant ken ik ook nog mensen die met Wfw 3.11 en IE 5.01 gebruiken. :( En wat te denken van PDA's en Mobiles of IEs op Macs?
Moraal van het verhaal: Of hou rekening met iedereen of ga uit van 95/99% van je bezoekers en bied de rest een alternatief. :)
ja, ik ken mijn statistieken en ik weet ook welke browsers welke mogelijkheden bieden. Zo weet ik dat IE5.0 al getElementById ondersteund, net als IE5.x op de MAC. Ook weet ik dat de internetervaring van iemand die hedentendage nog IE4 of NS4 gebruikt niet echt fullfilling zal zijn aangezien heel veel sites die browsers niet meer ondersteunen (en terecht, je praat over techniek van zo'n 8 jaar oud).
Ik zie meer heil in het ondersteunen van andere recente browsers naast IE dan het vasthouden aan verouderde technieken. Helaas zijn er in praktijk meer IE-only sites dan sites die nog rekening houden met prehistorische browsers - ik denk dat je daarmee juist meer mensen uitsluit.

Ik zie dat je vrij nieuw bent op dit forum; misschien zou je je van te voren eens wat meer kunnen verdiepen in de mensen op dit forum om je zo een beeld te vormen van hun kennis; ik kan me wel enige arrogantie veroorloven op dit gebied denk ik zo :P

Intentionally left blank

Pagina: 1