Laden...

Enter Taste verbieten

Erstellt von Mumpitz vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.402 Views
M
Mumpitz Themenstarter:in
79 Beiträge seit 2006
vor 17 Jahren
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.

5.942 Beiträge seit 2005
vor 17 Jahren

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

M
Mumpitz Themenstarter:in
79 Beiträge seit 2006
vor 17 Jahren

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.

5.942 Beiträge seit 2005
vor 17 Jahren

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

484 Beiträge seit 2006
vor 17 Jahren

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

M
Mumpitz Themenstarter:in
79 Beiträge seit 2006
vor 17 Jahren

@ Joerg

Ein dickes dankeschön.
Es funktioniert wunderbar 🙂