在textarea中退格错误的行为

时间:2014-01-13 14:41:07

标签: actionscript-3 flex

我最近发现了这个问题:当我在一个textarea组件(在tabnavigator中)按下键盘上的退格键时,它不会删除carachters但它会回到之前的标签上,好像我按了后面一样浏览器的按钮。 这仅适用于IE 11和Flex SDK 3.6

<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>

1 个答案:

答案 0 :(得分: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