2009-05-29 6 views

Répondre

-2
<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> 
    <mx:TextArea id="textArea" focusOut="{textArea.setFocus()}" /> 
    <mx:Button id="test" label="Test" /> 
</mx:Application> 
+0

Ce genre de travaux. Mais quand je choisis entre deux TextArea il y a une exception de débordement, prob parce que les deux essayent de prendre le focus. – rid00z

+0

Peut-être quelque chose comme ça, mais il n'utilise que setFocus si le focus suivant est le certain bouton. Je pourrais essayer ça. – rid00z

0

Dans le gestionnaire d'événements pour l'événement click vous voulez stopImmediatePropagation() et preventDefault(), puis faire de votre entreprise avec la sélection/mise au point.

+0

Salut Joel. Cela n'a pas fonctionné, sur l'événement de clic de boutons j'ai utilisé ces deux événements et le bouton a encore volé le focus de TextArea. – rid00z

0

Il semble que le RichTextEditor accomplit son objectif de maintenir la ligne suivante dans setTextStyles():

callLater(textArea.setFocus) 

Je pense que toute interaction de l'utilisateur avec les commandes du RTE conduira par cette méthode, de sorte que les rendements se concentrer après l'événement de contrôle est terminé.

0

J'ai eu le même problème avec une simple zone de texte. J'ai un bouton qui tire la valeur en surbrillance et ajax l'envoie au serveur. Mais lorsque le focus est retiré du bouton, la valeur de surbrillance window.getSelection().toString() est vide.

J'ai pu résoudre ce problème en réglant simplement le foyer sur la zone de texte. Solution bon marché, je sais mais ça marche. J'utilise jQuery mais il ne sera probablement pas difficile de trouver une version de vanilla javascript.

$holder.on('click', '.name-add_option input', function(e) 
{ 
    // Make sure the button doesn't do something silly like submit the form. 
    e.preventDefault(); 

    // Set the focus to the text area I expect the highlighted text to be. 
    $holder.find('.name-field textarea').focus(); 

    // Copy highlighted text. 
    highlight = window.getSelection().toString(); 

    // Do stuff with highlighted data. 
}); 

$holder est une poignée jquery d'un div style comme une fenêtre modale dans mon contexte.

Questions connexes