"We are back" « oc.at

nicht alltäglich - Touchscreen

cdoo 29.08.2007 - 08:27 2154 20
Posts

cdoo

Bloody Newbie
Registered: Apr 2005
Location: stp
Posts: 47
@mat

da ist im Prinzip keine Bildschirmtastatur vorhanden.
die einzige Möglichkeit die besteht ist, mit dem Finger auf dementsprechend große Grafiken zu "klicken".

habs bis jetzt nicht probieren können, geb euch aba dann bescheid.

cdoo

Bloody Newbie
Registered: Apr 2005
Location: stp
Posts: 47
hi!

also das mit dem blur ding funktioniert wunderbar für den IE jedoch nicht für den firefox.

mit folgendem Code geht das fokus halten perfekt


Code: PHP
<script language="javascript" type="text/javascript">
function checkFeld()
{
if (document.form1.text1.value.length < 2)
{
window.setTimeout('document.form1.text1.focus()', 5);
return false;
}
}
</script>

jetzt hab ich noch ein kleines Problem :D

der Cardreader übergibt eine lange Zahl an das Feld .. ist es möglich dann eine Art "enter" zu schicken wenn bemerkt wird, dass ein Eintrag ins Feld erfolgt ist?

dankeschön

(langsam aber sicher :fresserettich: ) ;)

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11354
Sauber ist das alles nicht - du kannst nicht garantieren, dass die Eingaben von der Tastatur wirklich in deinem Eingabefeld landen, da zumindest kurzzeitig der Fokus immer woanders ist, wenn der User wo draufklickt. Es könnte der User z.B. die Karte zupfen und praktisch gleichzeitig wo draufdrücken, dann landet vielleicht die halbe Eingabe in deinem Feld und der Rest im Nirvana.

Falls das alles kein Problem ist und Zuverlässigkeit unwichtig ist: Du kannst immerhin sehr leicht regelmäßig (setTimeout...) überprüfen, ob der Text in deinem Eingabefeld eine bestimmte Länge erreicht hat und dann Submit aufrufen.

Wirklich zuverlässig ginge es nur, wenn du den Eventstream von der Tastatur direkt abfangen kannst, unabhängig vom Eingabefokus - das sollte gerade unter Linux einfacher gehen als unter Windows, aber halt nicht mit JS.

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1096
also wenn ich das jetzt richtig verstanden habe machst du das ganze um dem user mim herausziehen der karte auszuloggen, oder ?

Also ich denke einfach, dass du das von der falschen Seite her angehst. Du willst unbedingt ein Enter schicken aber du hast grad in deinem js gezeigt, dass du überprüfst ob die länge von dem string der sich in dem feld befindet mindestens 2 oder größer sein muss. Warum machst du das jetzt nicht einfach
so:

Code: PHP
<script type="text/javascript">

function check_input() {

	if (document.form1.text1.value.length >= 2)
	{
	 alert("jetzt leite mich zum logout!");
	}

}

</script>
.....



<form name="form1">
  <input type="text" name="text1" onkeydown="javascript: check_input();">
  </form>

Musst dich aber halt mit den zahlen herumspielen. funzt auch im firefox2 :)

MFG
Snoopal

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25868
und wer sagt, dass der focus gerade auf diesem eingabefeld ist? das überprüfen/entnehmen des string per js ist nicht das problem, sondern der focus der sich jederzeit änder könnte, zB per klick auf ein anderes formularelement. deshalb ist imo die einzige saubere lösung das abfangen des tastaturinputs bevor der browser ihn bekommt.

Snoop

Here to stay
Registered: Jun 2002
Location: Gablitz
Posts: 1096
asooo jetzt check ichs :) ich hab verstanden, dass er dem cardreader sagen kann in welches inputfeld er es schreiben soll. das verkompliziert die geschichte klarerweise :>
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz