2009-10-20 11 views
1

J'essaye de créer un webform en HTML, et si nécessaire javascript. Dans ce formulaire Web, il devrait être possible d'entrer le code source, donc, pour le faire confortablement, j'aimerais que l'on puisse entrer des onglets. Y a-t-il un moyen d'y parvenir?Garder le focus sur un formulaire html malgré la touche de tabulation

Merci

+1

Si le reste de votre page n'accepte pas dans son contexte normal, le fait que votre zone de texte permette en saisie ne résoudra pas l'irritation que vos utilisateurs ressentiront en utilisant le reste du formulaire. – dnagirl

Répondre

2

Vous pourriez être en mesure de capturer l'événement onKeyDown. Si le code clé est égal à la touche de tabulation, remplacez l'onglet par 3 espaces ou quelque chose comme ça. J'ai testé ce dans Firefox 3. Vous permet de taper un onglet sans perdre le focus. Soyez prudent, car ce code ajoutera simplement un caractère de tabulation à la fin de la zone de texte. Ainsi, si l'utilisateur tape un onglet au milieu du texte, l'onglet apparaîtra toujours à la fin.

<html> 
<head> 
<script> 
    function kH(e) 
    { 
     //capture key events 
     var pK = document.all? window.event.keyCode:e.which; 

     //if target is textbox and key is tab 
     if(e.target.type=='text' && pK==0) 
     { 
      //append tab to end of target value 
      e.target.value = e.target.value + "\t"; 

      //Cancel key event 
      return false; 
     } 

    } 

    document.onkeypress = kH; 
    if (document.layers) document.captureEvents(Event.KEYPRESS); 

</script> 
</head> 
<form> 
    <input type='text' id='txtTest' name='txtTest'></input> 
</form> 
</html> 
+0

c'est ce que je craignais. Merci pour la réponse – data

0

Il n'y a pas une bonne façon ... c'est pourquoi stackoverflow vous fait faire 4 espaces et utilise une bibliothèque spéciale pour interpréter des choses dentelée 4-espace sous forme de code. Je suppose que si vous vouliez vraiment utiliser des onglets, vous pouviez faire un gestionnaire d'événement onBlur qui restituait le focus sur la fenêtre, et un gestionnaire d'événement onKeyDown qui insérait 4 espaces chaque fois que la touche TAB était enfoncée.

+0

Voilà ce que je pensais. Certains de mes analyseurs utilisent un style de codage similaire. – data

0

Vous pouvez opter pour un bouton "retrait" dans la barre d'outils. Quand il est pressé, il insère un onglet si rien n'est sélectionné ou indente la sélection.

Questions connexes