Ulrich Springer wrote:
[OjE-TOFU mühsam repariert, siehe unten]
Quote:
"Thomas 'PointedEars' Lahn" <PointedEars (AT) web (DOT) de> schrieb [...]:
Ulrich Springer wrote:
Ich möchte in einem HTML-Formular ein Input-Field überwachen und ein
automatisches submit auslösen, wenn mehr als 7 Zeichen eingegeben
wurden.
input ... onkeypress="if (this.value.length > 7) this.form.submit();"
Doch wozu soll das gut sein?
Angeblich sollte so etwas mit window.setInterval("Farbe()",1000)
funktionieren.
Was hat das eine mit dem anderen zu tun? [...]
Sorry, hatte vergessen zu erwähnen, dass ich auf dem Anzeigegerät, das
diese Seite anzeigen soll, nur HTML 3.2 läuft! HAst Du dafür auch eine
Lösung? |
Da also intrinsische Event-Handler von HTML 4.01 nicht unterstützt werden,
gibt es AFAIS zwei Möglichkeiten: Du weist den Event-Handler mittels des
DOM des UA nachträglich dynamisch zu:
ReferenceToInputElement.onkeypress
= new Function("if (this.value.length > 7) this.form.submit()");
Oder falls das nicht möglich ist, musst Du AFAIS tatsächlich auf das (wenig
performante) ständige Abfragen des Formularelementinhalts zurückgreifen.
Quickhack:
function checkMe(iLength)
{
var f = ReferenceToFormElement;
var inp = ReferenceToInputElement;
if (window.setInterval)
{
if (inp.value.length > 7)
{
if (window.clearInterval) window.clearInterval(intBlubb);
f.submit();
}
}
else if (window.setTimeout)
{
if (inp.value.length > 7)
{
if (window.clearTimeout) window.clearTimeout(timeOblubb);
f.submit();
}
else
{
// Timeout neu setzen
timeOblubb = window.setTimeout(
"checkMe(" + iLength + ")",
iLength
);
}
}
}
var intLength = 50; // Intervall-Länge in ms; muss evtl. angepasst werden
if (window.setInterval) // Intervall bevorzugen
{
var intBlubb = window.setInterval("checkMe()", intLength);
}
else if (window.setTimeout) // wenn Obiges nicht geht, dann mit Timeouts
{
var timeOblubb = window.setTimeout(
"checkMe(" + intLength + ")",
intLength
);
}
Passiert hier nichts (d.h. es gibt auch keine Fehlermeldung, siehe
<http://glasgoogle.de/>), kannst Du AFAIS eine derartige Funktionalität
mit diesem UA nicht realisieren, da weder window.setInterval(...) noch
window.setTimeout(...) unterstützt werden. Um ganz sicher zu gehen,
kannst Du ja noch ein
else alert("Geht nicht!")
an den letzten Anweisungsblock anhängen.
`ReferenceToFormElement' könnte `document.forms[...]' und
`ReferenceToInputElement' könnte `document.forms[...].elements[...]' sein.
Quote:
"Thomas 'PointedEars' Lahn" <PointedEars (AT) web (DOT) de> schrieb im Newsbeitrag
news:3F044282.3070900 (AT) PointedEars (DOT) de...
[TOFU] |
Du willst dringend
http://got.to/quote sowie
http://oe-faq.de/ besuchen und
Deinen Zitierstil heilen.
HTH
PointedEars
--
Mozilla-Goodies inkl. Prozess-Manager, Setup-Assistent & Flash-Installer:
<http://pointedears.de.vu/mozilla/>
Sagt NEIN zum Irak-Krieg!
<http://www.tagesschau.de/thema/0,1186,OID1654990_REF1_NAVSPM1,00.html>