ugrás a tartalomhoz

Textarea + Tab

Gixx · 2010. Dec. 6. (H), 12.10
Sziasztok!

Minden alkalommal, amikor hozzászólok egy-egy cikkhez és esetleg forráskódot is írok a colorer segítségével, akkor rendszerint a vakolatot is leátkozom a plafonról a Tab miatt, mivel reflexből igyekszek az olvashatóságra törekedni, de persze az alapértelmezett működés ezt nem teszi lehetővé.

Ezért azt szeretném kérni, hogy az alábbi kódrészletet illesszétek be a javascriptek közé, amennyiben ti is hasznosnak találjátok:

$(function() {
	$('textarea').keypress(function(e){
		if(e.keyCode == 9){
			e.preventDefault();
			var pos = 0;
			var ctrl = $(this).get(0);

			// get position
			if (document.selection) {
				ctrl.focus ();
				var Sel = document.selection.createRange ();
				Sel.moveStart ('character', -ctrl.value.length);
				pos = Sel.text.length;
			} else if (ctrl.selectionStart || ctrl.selectionStart == '0') {
				pos = ctrl.selectionStart;
			}

			var _pre = $(this).val().substring(0, pos);
			var _post = $(this).val().substring(pos);
			$(this).val(_pre+"\t"+_post)

			//set position
			if(ctrl.setSelectionRange)
			{
				ctrl.focus();
				ctrl.setSelectionRange(pos+1,pos+1);
			}
			else if (ctrl.createTextRange) {
				var range = ctrl.createTextRange();
				range.collapse(true);
				range.moveEnd('character', pos+1);
				range.moveStart('character', pos+1);
				range.select();
			}

		}
	});
});
... vagy ha szükség van az alapértelmezett működésre, akkor Shift+Tab-ra rakni. Vagy ilyesmi. Én speciel örülnék neki :D

Köszi!