molily: Datenkonsistenzprüfung beim Verlassen eines input-feldes

Beitrag lesen

Hallo,

das scheint eine generelle Sperre zu sein, um JavaScript-Missbrauch zu verhindern: Im blur-Handler kann man nicht die focus-Methode des Elements aufrufen, bei der der blur-Event passierte. Eigentlich logisch.

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);  
 }  
}
<form action="">  
<input type="text" name="feld1" id="feld1">  
<input type="text" name="feld2">  
</form>

Ob das so klug ist, ist natürlich zu bezweifeln. Ich würde die Formularüberprüfung nicht beim blur durchführen bzw. keinen automatischen focus() durchführen.

Mathias