Hallo,
Hallo Mathias
Du kannst das, wenn du unbedingt willst, umgehen, indem du focus etwas verzögert aufrufst. Gecko fällt der Zusammenhang zwischen blur und focus dann nicht mehr auf:
function onload () {
document.getElementById("feld1").onblur = test;
}
function test () {
if (this.value != '' || isNaN(this.value)) {
this.onblur = null;
alert("Fehler!");
var elem = this;
window.setTimeout(function () {
elem.focus();
elem.select();
elem.onblur = test;
}, 1);
}
}
>
> ~~~html
<form action="">
> <input type="text" name="feld1" id="feld1">
> <input type="text" name="feld2">
> </form>
ich hab meinen Code jetzt nur sehr, sehr geringfügig verändert:
function isNumber(inputField, alertMsg)
{
[...Zusätzliche Überprüfungen ...]
if((inputField.value == '') || !isNaN(inputField.value))
{
return true;
}
else
{
alert(alertMsg);
window.setTimeout(function () {
try
{
inputField.focus();
inputField.select();
}
catch (e) {}
}, 1);
return false;
}
}
Das reicht schon aus damit das Ganze auch unter Firefox funktioniert. Könnten sich durch meine Abänderungen (bzw. starken vereinfachungen) irgendwelche Probleme ergeben die ich jetzt noch nicht bedacht habe, bzw. wozu das Erstellen einer neuen Kopie des Inputelements und das Löschen und wieder anlegen der onBlur-Funktion?
Mathias
Danke und liebe Grüße
Thomas