[kupu-checkins] r51113 - kupu/trunk/kupu/plone/kupu_plone_layer
duncan at codespeak.net
duncan at codespeak.net
Tue Jan 29 17:12:10 CET 2008
Author: duncan
Date: Tue Jan 29 17:12:09 2008
New Revision: 51113
Modified:
kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js
Log:
Fix tab key which wasn't taking you out of kupu to next/previous field. However, plone ticket #7727 might result in tab behaviour
changing again.
Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js
==============================================================================
--- kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js (original)
+++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js Tue Jan 29 17:12:09 2008
@@ -289,24 +289,35 @@
function tabHandler(event) {
event = event||window.event;
if (event.keyCode!=9) { return; }
+ console.log("tab!");
if (!(/kupu-fulleditor-zoomed/.test(document.body.className))) {
var form = textarea.form;
var els = form.elements;
- var target, targindex;
- var mytabindex = iframe.tabIndex;
- for (var i = 0; i < els.length; i++) {
- var el = els[i];
- if (el.tabIndex && el.tabIndex > mytabindex && !el.disabled && el.offsetWidth && el.offsetHeight) {
- if (!targindex || el.tabIndex < targindex) {
+ var target;
+ if (event.shiftKey) { // shift-tab goes backwards.
+ for (var i = 0; i < els.length; i++) {
+ var el = els[i];
+ if (!el.disabled && el.offsetWidth && el.offsetHeight) {
target = el;
- targindex = el.tabIndex;
+ }
+ if (els[i]===textarea) break;
+ }
+ } else { // tab forwards
+ for (var i = 0; i < els.length; i++) {
+ if (els[i]===textarea) break;
+ }
+ for (;i < els.length; i++) {
+ var el = els[i];
+ if (!el.disabled && el.offsetWidth && el.offsetHeight) {
+ target = el;
+ break;
}
}
}
if (target) {
window.focus();
target.focus();
- }
+ } else { return; };
}
if (event.preventDefault) { event.preventDefault(); event.stopPropagation();}
event.returnValue = false;
More information about the kupu-checkins
mailing list