1990metallica: Kein keyupEvent ausgelöst bei drücken der Backspace-Taste

Beitrag lesen

das ist jetzt nämlich genau mein problem ..

eigentlich soll der rand des feldes wieder schwarz werden wenn es leer ist

Das musst du in deine Funktion einbauen. Was soll die Schleife den bewirken?

Die Zeilen sind auch nicht sinnvoll:

if((formFieldID == "[object KeyEvent]") || (formFieldID == "[object KeyboardEvent]"))

{
                formFieldID = formFieldID.target.id;
        }
        if(formFieldID == "[object Event]")
        {
                formFieldID = formFieldID.srcElement.id;
        }


>   
> Du prüfst hier auf die Stringumsetzung eines Objektes, was nicht sehr zuverlässig ist.  
>   
> Zuverlässiger wäre es, wenn du auf die Eigenschaft testen würdest.  
>   
> ~~~javascript

var element = formFieldID.target || formFieldID.srcElement;  

> formFieldID = element.id;  
> 

Wobei ich formFieldID einen schlechten Namen für das Eventobjekt halte.

Struppi.

dankeschön für die Tipps :)
die for-schleife prüfte jedes zeichen, damit z.b. 1e+34 nicht als zahl interpretiert wird (exponentenschreibweise)
sobald nur ein falsches zeichen auftaucht wird der border rot und die schleife birch ab (eine weitere prüfung ist ja nicht sinnvoll bzw. würde vorhandene fehler überschreiben, wenn danach noch eine zahl auftaucht)

habe es nun folgendermaßen umgesetzt

  
  
function checkFormFieldIsPositiveInt(formFieldID)  
{  
	var element = formFieldID.target || formFieldID.srcElement;  
	formFieldID = element.id;  
	  
	if(document.getElementById(formFieldID).value == "")  
	{  
	  document.getElementById(formFieldID).style.border = "thin solid #000000";	  
	}  
	else  
	{  
		for(i = 0; i < document.getElementById(formFieldID).value.length; ++i)  
		{  
			alert('Event ausgelöst');  
			if((document.getElementById(formFieldID).value.charAt(i) == ".") || (document.getElementById(formFieldID).value.charAt(i) == ",") || ((document.getElementById(formFieldID).value.charAt(i)  < "0") || (document.getElementById(formFieldID).value.charAt(i) > "9")))																																																																																																																		  		{  
	  		document.getElementById(formFieldID).style.border = "thin solid #FF0000";	  
				break;  
			}  
			else if((document.getElementById(formFieldID).value.charAt(i) == " ") || (document.getElementById(formFieldID).value.charAt(i) == "") || (document.getElementById(formFieldID).value == ""))  
			{  
				document.getElementById(formFieldID).style.border = "thin solid #000000";	  
			}  
			else  
			{  
				document.getElementById(formFieldID).style.border = "thin solid #000000";	  
			}  
		}  
	}  
}