2014-01-13 2 views
0

Я недавно нашел эту проблему: когда я нажимаю backspace на клавиатуре в компоненте textarea (внутри tabnavigator), он не удаляет качалки, но возвращается на предыдущую вкладку, так как если я нажал кнопку «Назад» браузера. Это происходит только с IE 11 и Flex SDK 3.6Backspace неправильное поведение в textarea

<mx:TabNavigator id="tabNavigator" tabWidth="150" tabHeight="60" height="100%"> 
    <mx:VBox label="left"> 
     <mx:TextArea id="id1" maxChars="1000" width="75%"/> 
    </mx:VBox> 
    <mx:VBox label="right"> 
     <mx:TextArea id="id2" maxChars="1000" width="75%"/> 
    </mx:VBox> 
    <mx:VBox label="top"> 
     <mx:TextArea id="id3" maxChars="1000" width="75%"/> 
    </mx:VBox> 
</mx:TabNavigator> 
+0

вы уверены, что фокус был правильно установлен компонент TEXTAREA? Странно, что поведение только присоединяется к IE, поскольку мы говорим о вспышке. Вы пробовали с разными браузерами? – blaazzze

+0

Да, конечно, в фокусе, и я пробовал с разными браузерами и разными версиями IE – Dosty

ответ

0

У меня была такая же проблема, и этот сценарий в шаблоне HTML работает для меня: (Предотвратить клавишу возврата, и установите фокус на вспышку, удалить текст)

<script type="text/javascript"> 
    function killBackSpace(e){ 
     e = e? e : window.event; 
     var t = e.target? e.target : e.srcElement? e.srcElement : null; 
     if(t && t.tagName && (t.type && /(password)|(text)|(file)/.test(t.type.toLowerCase())) || t.tagName.toLowerCase() == 'textarea') 
      return true; 
     var k = e.keyCode? e.keyCode : e.which? e.which : null; 
     if (k == 8){ 
      if (e.preventDefault) { 
       e.preventDefault(); 
       document.${swf}.focus(); 
      } 
      return false; 
     }; 
     return true; 
    }; 
    if(typeof document.addEventListener!='undefined') 
     document.addEventListener('keydown', killBackSpace, false); 
    else if(typeof document.attachEvent!='undefined') 
     document.attachEvent('onkeydown', killBackSpace); 
    else 
    { 
     if(document.onkeydown!=null){ 
      var oldOnkeydown=document.onkeydown; 
      document.onkeydown=function(e){ 
       oldOnkeydown(e); 
       killBackSpace(e); 
      }; 
     } 
     else 
      document.onkeydown=killBackSpace; 
    } 
</script> 

http://dev.ektron.com/forum.aspx?g=posts&t=19188

+0

Спасибо за вашу помощь, но я нашел другой способ решить проблему thsi: вам нужно установить значение false historyManagementEnabled компонента TabNavigator – Dosty

+0

Спасибо за наконечник, это очень полезно! – Leo

Смежные вопросы