Graag zou ik zien dat tabs mogelijk worden bij reacties, ik heb het op mijn eigen website ook gezet en vergt minimale moeite,

Het is niet door mij gemaakt, ik heb gezocht waar ik hem wel vandaan heb maar kon het zo niet meer vinden.

Het werkt met een javascript dat in een textarea op de volgende manier word aangeroepen:
<textarea onkeydown="insertTab(this, event)></textarea>

De javascript is als volgt:

function insertTab(o, e)
{
	var kC = e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which;
	if (kC == 9 && !e.shiftKey && !e.ctrlKey && !e.altKey)
	{
		var oS = o.scrollTop;
		if (o.setSelectionRange)
		{
			var sS = o.selectionStart;
			var sE = o.selectionEnd;
			o.value = o.value.substring(0, sS) + "\t" + o.value.substr(sE);
			o.setSelectionRange(sS + 1, sS + 1);
			o.focus();
		}
		else if (o.createTextRange)
		{
			document.selection.createRange().text = "\t";
			e.returnValue = false;
		}
		o.scrollTop = oS;
		if (e.preventDefault)
		{
			e.preventDefault();
		}
		return false;
	}
	return true;
}
Meer mensen hier behoefte aan?
Ja, doen :-)
Ik ben voorstander :)
Goed idee!
Hoe bouw je hier een vinkje voor in JS dat als die aanstaat hij de tabs wel pakt, en anders niet? Ik denk dat sommige mensen dit liever ook niet hebben om door te skippen naar de submit knop.
In het begin van de functie toevoegen

var capture_tab_toggle = document.getElementById('capture_tab_toggle');
if(!capture_tab_toggle.checked)
    return true;

en ergens een checkbox met id="capture_tab_toggle" toevoegen. Maar misschien is het overzichtelijker om niet het reactieformulier hiermee ingewikkelder te maken, maar het gewoon bij voorkeuren te zetten? Dan kan je het onkeydown attribuut wel met PHP toevoegen.
Precies. Bij de voorkeuren aan of uit kunnen zetten was het idee inderdaad. Dan kan ik gewoon doen, als hij geset is, zet dan de JS variabele capture_tab_toggle right?
Het lijkt me handiger om een extern scriptje te maken, dat met jQuery.ready het onkeydown attribuut van deze textarea aanpast. Als mensen dan in hun voorkeuren hebben staan dat ze tabs willen, zet je <script src="extern_scriptje.js"> in de pagina, en anders niet.

Even denken, aangezien je prototype.js gebruikt, zou dat dan iets worden in de richting van...

$(window).observe('load', function() {
	var insertTab = function(e)
	{
		var o = Event.element(e);
	    var kC = e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which;
	    if (kC == 9 && !e.shiftKey && !e.ctrlKey && !e.altKey)
	    {
	        var oS = o.scrollTop;
	        if (o.setSelectionRange)
	        {
	            var sS = o.selectionStart;
	            var sE = o.selectionEnd;
	            o.value = o.value.substring(0, sS) + "\t" + o.value.substr(sE);
	            o.setSelectionRange(sS + 1, sS + 1);
	            o.focus();
	        }
	        else if (o.createTextRange)
	        {
	            document.selection.createRange().text = "\t";
	            e.returnValue = false;
	        }
	        o.scrollTop = oS;
	        Event.stop(e);
	    }
	}

	$$('textarea').each(function(textarea) {
		textarea.observe('keydown', insertTab);
	});
});
Hij zegt '$(window).observe is not a function'? Ik ben helemaal niet zo'n ster in JS :)
Ghehe, en ik niet zo'n ster met Prototype. Ik zat nog teveel met jQuery in m'n hoofd. Het had moeten zijn:

Event.observe(window, 'load', function() {
   // code
});

Reageren