Laden...

Enter Taste verbieten

Letzter Beitrag vor 17 Jahren 6 Posts 3.412 Views
Enter Taste verbieten

Gibt es eine Möglichkeit unter ASP.Net das Drücken der Enter Taste abzufangen bzw zu verbieten ?

Danke für Eure Antworten.

Hallo Mumpitz

Falls du damit verhindern möchtest, dass ein Formular durch drücken der
Enter Taste abgesendet wird, das geht so direkt nicht.

Es gibt ein Workaround, ein normaler Button, Image, Div bei dem das Formular mithilfe des onclick Eventhandlers abgeschickt wird.
Natürlich darfst du dann kein Submit Button im Formular haben.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

Unter Windows Forms kann ich doch Keydown ... abfangen, habe ich unter WebForms keine solche Möglichkeit ?
Mein Problem besteht einfach dadrinne, dass wenn ich irgendwo auf der ASP.Net Site klicke, dann spring er automatisch mit dem Focus zum nächsten Control. Wenn ich nun Enter drücke, logge ich mich aus der Page aus oder drücke einen Button ... dies will ich abfangen.

Original von Mumpitz
Unter Windows Forms kann ich doch Keydown ... abfangen, habe ich unter WebForms keine solche Möglichkeit ?

Nein, ASP.NET ist rein serverseitig.
Wenn man etwas machen könnte, wäre es mit Javascript
aber das was du willst, funktioniert nicht.

Original von Mumpitz
Mein Problem besteht einfach dadrinne, dass wenn ich irgendwo auf der ASP.Net Site klicke, dann spring er automatisch mit dem Focus zum nächsten Control. Wenn ich nun Enter drücke, logge ich mich aus der Page aus oder drücke einen Button ... dies will ich abfangen.

Siehe mein obenstehendes Posting.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

Es geht, aber nur mit JavaScript!

Dabei ist zu beachten, dass wenn Du eine MultilineTextBox hast, das dort natürlich die Entertaste einen Zeilenumbruch setzen kann/darf.

Hier mal ein Beispiel: Nur IE, da es sich um eine IntranetAnwedung handelte
Was Du nicht brauchst schmeiss raus 🙂

document.onkeydown = disableNavigationKeys;

function disableNavigationKeys()
{    	
	
	//alert(event.srcElement.type);
	//alert(event.srcElement.isTextEdit);
	//disable Backspace, Alt+Arrowkeys, Ctrl-N 
	if ((event.keyCode == 8 && (event.srcElement.form == null || event.srcElement.isTextEdit== false)) 
		|| event.keyCode == 37 && event.altKey	
		|| event.keyCode == 39 && event.altKey	
		|| event.keyCode == 78 && event.ctrlKey
		|| event.keyCode == 13 && (event.srcElement.form == null || event.srcElement.isTextEdit== false || event.srcElement.type != 'textarea')
		)

	{        
		event.cancelBubble = true;
		event.returnValue = false;
	}
	
	if(event.keyCode==27)
	{
		// spezial for ESC
	}
	// disable Ctrl-P
	if (event.keyCode == 80 && event.ctrlKey)	
	{
		alert("Printing is disabled");
		event.cancelBubble = true;
		event.returnValue = false;		
	}		
}

Hier noch ein brutales ohne die Berücksichtigung:

function disableEnterKey(e)
 {
    var key;

    if(window.event)
        key = window.event.keyCode;     //IE
    else
        key = e.which;     //FF

    if(key == 13)
        return false;
    else
        return true;
}

Jörg

@ Joerg

Ein dickes dankeschön.
Es funktioniert wunderbar 🙂