<table><tr><td ><input type="text" style="width:60px;background-color: #FFFF99"/></td><td><input type="text" style="width:60px;background-color: #FFFF99"/></td><td ><input type="text" style="width:60px;background-color: #FFFF99"/></td></tr><tr><td ><input type="text" style="width:60px;background-color: #FFFF99"/></td><td><input type="text" style="width:60px;background-color: #FFFF99"/></td><td ><input type="text" style="width:60px;background-color: #FFFF99"/></td></tr><tr><td ><input type="text" style="width:60px;background-color: #FFFF99"/></td><td><input type="text" style="width:60px;background-color: #FFFF99"/></td><td><input type="text" style="width:60px;background-color: #FFFF99"/></td></tr></table>
按TAB键在input里的方向向右跳到下个input里。。。我想弄成向下移动。。。请问如何实现呢!!谢谢了!!
回复讨论(解决方案)
用tableindex属性值试试
用tableindex属性值试试
对。按照想跳转的顺序,在INPUT标签里加上tableindex属性,值从小到大。
引用 1 楼 zsx841021 的回复:
用tableindex属性值试试
对。按照想跳转的顺序,在INPUT标签里加上tableindex属性,值从小到大。
可以是可以。。。不过很多的时候一个个地添加。。。会累死人的!!
有没有偷懒的方法
document.onkeydown = function (e) { var srcElement = samsung.dsem.utility.getSrcElement(e); var currKey = samsung.dsem.utility.getKeyCode(e); var keyName = ""; switch (currKey) { case 8: keyName = "[退格]"; if (srcElement != null) { if (srcElement.tagName != undefined && (srcElement.tagName == "input" || srcElement.type == "text" || srcElement.type == "textarea")) { if (srcElement.readOnly != true || srcElement.disabled != "disabled") { return true; } } } return false; break; case 9: keyName = "[制表(Tab)]"; var cur_tr = srcElement.parentNode.parentNode; var cur_td_index = srcElement.parentNode.cellIndex; if (cur_td_index!=null&&cur_td_index == (cur_tr.cells.length - 1)) { var next_tr; if (cur_tr.tagName != undefined && cur_tr.tagName.toLowerCase() == "tr") { next_tr = samsung.dsem.utility.getNextSibling(cur_tr); if (next_tr != null) { //try { next_tr.cells[cur_td_index].childNodes[0].focus(); /*next_tr.click();*/ } catch (e) { } try { next_tr.cells[1].childNodes[0].focus(); /*next_tr.click();*/ } catch (e) { } } return false; } } break; case 13: keyName = "[回车]";// if (srcElement != null) {// if (srcElement.tagName != undefined && (srcElement.tagName == "input" || srcElement.type == "text" || srcElement.type == "textarea")) {// if (srcElement.readOnly != true || srcElement.disabled != "disabled") {// return true;// }// }// }// return false;// break; var cur_tr = srcElement.parentNode.parentNode; var cur_td_index = srcElement.parentNode.cellIndex; var next_tr; if (cur_tr.tagName != undefined && cur_tr.tagName.toLowerCase() == "tr") { next_tr = samsung.dsem.utility.getNextSibling(cur_tr); if (next_tr != null) { try { next_tr.cells[cur_td_index].childNodes[0].focus(); /*next_tr.click();*/ } catch (e) { } } return false; } break; case 32: keyName = "[空格]"; break; case 33: keyName = "[PageUp]"; break; case 34: keyName = "[PageDown]"; break; case 35: keyName = "[End]"; break; case 36: keyName = "[Home]"; break; case 37: keyName = "[方向键左]"; var cur_tr = srcElement.parentNode.parentNode; var cur_td = srcElement.parentNode; if (cur_td.tagName != undefined && cur_td.tagName.toLowerCase() == "td") { for (var i = 0; i < cur_tr.cells.length; i++) { if (i > 1) { if (cur_td == cur_tr.cells[i]) { if (cur_tr.cells[i - 1].childNodes[0].disabled != "disabled") { cur_tr.cells[i - 1].childNodes[0].focus(); if (cur_tr.cells[i - 1].childNodes[0].tagName.toLowerCase() != "select") { cur_tr.cells[i - 1].childNodes[0].select(); } //cur_tr.click(); break; } } } } } break; case 38: keyName = "[方向键上]"; var cur_tr = srcElement.parentNode.parentNode; var cur_td_index = srcElement.parentNode.cellIndex; var prev_tr; if (cur_tr.tagName != undefined && cur_tr.tagName.toLowerCase() == "tr") { prev_tr = samsung.dsem.utility.getPreviousSibling(cur_tr); if (prev_tr != null) { try { prev_tr.cells[cur_td_index].childNodes[0].focus(); /*prev_tr.click();*/ } catch (e) { } } return false; } break; case 39: keyName = "[方向键右]"; var cur_tr = srcElement.parentNode.parentNode; var cur_td = srcElement.parentNode; if (cur_td.tagName != undefined && cur_td.tagName.toLowerCase() == "td") { for (var i = 0; i < cur_tr.cells.length; i++) { if (i < (cur_tr.cells.length - 1)) { if (cur_td == cur_tr.cells[i]) { if (cur_tr.cells[i + 1].childNodes[0].disabled == "disabled" || cur_tr.cells[i + 1].childNodes[0].disabled == true) { } else { cur_tr.cells[i + 1].childNodes[0].focus(); if (cur_tr.cells[i + 1].childNodes[0].tagName.toLowerCase() != "select") { cur_tr.cells[i + 1].childNodes[0].select(); } //cur_tr.click(); break; } } } } } break; case 40: keyName = "[方向键下]"; var cur_tr = srcElement.parentNode.parentNode; var cur_td_index = srcElement.parentNode.cellIndex; var next_tr; if (cur_tr.tagName != undefined && cur_tr.tagName.toLowerCase() == "tr") { next_tr = samsung.dsem.utility.getNextSibling(cur_tr); if (next_tr != null) { try { next_tr.cells[cur_td_index].childNodes[0].focus(); /*next_tr.click();*/ } catch (e) { } } return false; } break; case 46: keyName = "[删除]"; break; default: keyName = ""; break; } }

HtmltagsaressentialforwebDevelopmentaSheystructureAnDenHanceWebpages.1) TheyDefiLlayout, Semantics et Interactivité.2) SemanctagSimproveaccessibilistibilitySeo.3) correct usUsoftagscanoptimizeperformanceAndensurecross-browercompatibilité.

Un style de codage HTML cohérent est important car il améliore la lisibilité, la maintenabilité et l'efficacité du code. 1) Utilisez des étiquettes et des attributs en minuscules, 2) Gardez une indentation cohérente, 3) Sélectionnez et respectez les citations simples ou doubles, 4) Évitez de mélanger différents styles dans les projets, 5) Utilisez des outils d'automatisation tels que plus jolis ou Eslint pour assurer la cohérence en style.

La solution pour implémenter un carrousel multi-projets dans Bootstrap4 implémentation de carrousel multi-projets dans bootstrap4 n'est pas une tâche facile. Bien que bootstrap ...

Comment réaliser l'effet de la pénétration des événements de défilement de la souris? Lorsque nous naviguons sur le Web, nous rencontrons souvent des conceptions d'interaction spéciales. Par exemple, sur le site officiel Deepseek, � ...

Le style de contrôle de lecture par défaut de la vidéo HTML ne peut pas être modifié directement via CSS. 1. Créez des contrôles personnalisés à l'aide de JavaScript. 2. Embellir ces contrôles via CSS. 3. Considérons la compatibilité, l'expérience utilisateur et les performances, en utilisant des bibliothèques telles que Video.js ou Plyr peuvent simplifier le processus.

Problèmes potentiels avec l'utilisation de la sélection native sur les téléphones mobiles Lors du développement d'applications mobiles, nous rencontrons souvent la nécessité de sélectionner des boîtes. Normalement, les développeurs ...

Quels sont les inconvénients de l'utilisation de Native Select sur votre téléphone? Lors du développement d'applications sur des appareils mobiles, il est très important de choisir les bons composants d'interface utilisateur. De nombreux développeurs ...

Utilisez Three.js et Octree pour optimiser la gestion des collisions de l'itinérance à la troisième personne dans la salle. Utilisez Octree dans Three.js pour mettre en œuvre l'itinérance à la troisième personne dans la salle et ajouter des collisions ...


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.
