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.
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);
});
});