2009-08-23 9 views
1

J'utilise la gestion des raccourcis de openjs.com (1) pour désactiver la touche d'entrée dans mes formulaires html. Cependant, à l'intérieur de textareas dans ces formes je veux entrer la clé pour émettre la paire normale CR-LF (parce que c'est ce que les utilisateurs attendent).Activer sélectivement la touche d'entrée dans la zone de texte HTML (javascript)

Au moment en supposant que j'ai une structure sous forme/entrée comme suit:

<form id="f1"> 
<fieldset> 
    <input> 
    <textarea id="f2"> ... 

Les scripts suivants sont exécutés:

shortcut.add('Return', function() { /*empty*/ }, 
{ 'type':'keydown', 'disable_in_input':false,'propagate':true, 
    'target':document.getElementById('f1')});" 

Cela désactive la touche Entrée.

J'ai essayé d'utiliser le code suivant pour réactiver le textarea:

shortcut.add(\"Enter\", function() { }, {'type':'keydown','propagate':false, 
'disable_in_input':false, 'target':document.getElementById('f2') }); 

Mais cela ne fonctionne pas. Quel est l'ordre de propagation de cet événement? Devrait-il surgir de la zone de texte ou de la bulle de l'élément de formulaire?

Répondre

3

Cette bibliothèque ne semble pas vraiment destinée à être utilisée de cette façon. Je devinerais que l'ajout de n'importe quel raccourci désactive complètement la gestion du navigateur, peu importe ce que vous faites par la suite.

Qu'essayez-vous réellement d'accomplir? Si vous souhaitez simplement empêcher la soumission du formulaire, vous pouvez ajouter un submitevent listener pour l'ensemble du formulaire qui appelle event.preventDefault().