onkeypress-Problem

maybe1

Grünschnabel
Hallo Forum

Ich krieg einfach dieses onkeypress mit dem if in der function nicht hin. Was mach ich falsch?

Code:
var input = document.createElement( "input" );
input.type = "text";
input.id = "input" + nr;
input.onkeypress = function() { if( enter_pressed( event ) ) { request( "test" , nr ) } };

Die Fehlermeldung lautet "event is not defined".

Danke für eure Hilfe.
 
Zuletzt bearbeitet:
Ich sehe bei deiner Funktion auch keinen Parameter namens "event"?

Javascript:
input.onkeypress = function(event) {//...
 
@CPoly:
Stimmt, den hab ich jetzt eingebaut:

Code:
input.onkeypress = function( event ) { if( enter_pressed( event ) ) { request( "test" , nr ) } };

Nun erscheint eine neue Fehlermeldung "uncaught exception: [Exception... "prompt aborted by user..."

Bin neu in der Ajax-Technik. Entschuldige diese Fragerei...
 
Ich sehe dort nirgendwo AJAX, aber ich kann leider auch nicht erraten was sich hinter "request" versteckt. Enthält die Fehlermeldung auch eine Zeilennummer?
 
die vollständige Fehlermeldung sieht so aus:
uncaught exception: [Exception... "prompt aborted by user" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: resource://gre/components/nsPrompter.js :: openTabPrompt :: line 468" data: no]
 
Im Prinzip stört die Fehlermeldung ja nicht weiter. Wann kommt die denn? Und was passiert in "request()"?
 
Die Fehlermeldung kommt sobald ich die Eingabetaste drücke.

request sieht in etwa so aus:

Code:
function request( name , data )
	{
		var request = false;
		
		// Request erzeugen
		if (window.XMLHttpRequest) {
			request = new XMLHttpRequest(); // Mozilla, Safari, Opera
		} else if (window.ActiveXObject) {
			try {
				request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
			} catch (e) {
				try {
					request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
				} catch (e) {}
			}
		}

		// überprüfen, ob Request erzeugt wurde
		if (!request) {
			alert("Kann keine XMLHTTP-Instanz erzeugen");
			return false;
		} else {
			var url = "test.php";
			
			request.open('post', url, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			
			request.send( 'name=' + encodeURIComponent( name ) + '&data=' + encodeURIComponent( data ) );
			
			
			request.onreadystatechange = function ()
			{
				switch (request.readyState) {
					// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
				case 4:
					if (request.status != 200) {
						alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
					} else {
						var returnValue = request.responseText;
						goOn( returnValue );
					}
					break;
				default:
					break;
				}
			}
		}
	}
 
Hab das Problem behoben. Das input war in einem form-Tag drin. Sobald ich das umschliessende form-Tag entfernte klappte alles... Vielen Dank für deine Mühe.
 
Gut. Und die Erklärung ist folgende:

Firefox hat einen Bug, der dazu führt, dass wenn ein alert-Fenster offen ist und dann die Seite neu geladen wird, eben diese Fehlermeldung erscheint. Und die Seite wird in deinem Fall neu geladen, weil das Drücken der Eingabetaste das Formular absendet. Anstatt das Formular zu entfernen könntest du auch das Absenden unterbinden.

Markiere das Thema noch bitte als Erledigt (Das Häkchen ganz unten neben dem "Auf Thema antworten" Button).
 
Zurück