如何在可编辑的 TextArea 中禁用回车?

Posted

技术标签:

【中文标题】如何在可编辑的 TextArea 中禁用回车?【英文标题】:How can I disable carriage returns within an editable TextArea? 【发布时间】:2011-10-18 07:49:00 【问题描述】:

我只是想阻止用户在 TextArea 中输入回车。我一直在试验 TextArea 中的“限制”属性,但似乎无法解决。

我有以下代码:

<mx:Canvas id="cvs1" label="Panel 1"   creationComplete"addEvtListnerOnPlaceText()" backgroundColor="#FFFFFF">
    <mx:TextArea id="txtP1T1" x="10" y="176" text="placeName"  textAlign="center" color="#DC0000" restrict="this is where I need some help"/>
</mx:Canvas>

我不确定限制属性是否会涵盖这一点,但我们将不胜感激。

我现在已经设法让一些工作:

    private function addEvtListnerOnPlaceText():void
        txtP1T1.addEventListener(KeyboardEvent.KEY_DOWN, onKeyEventDown);
        txtP1T1.addEventListener(KeyboardEvent.KEY_UP, onKeyEventUp);
    

    [Bindable]
    public var tempString:String;
    private function onKeyEventDown(e:KeyboardEvent):void
    
        var character:String = String.fromCharCode(e.charCode);

        if (e.keyCode == 13)
        
            tempString = txtP1T1.text;
            KeyboardEvent.KEY_UP;
        

    
    private function onKeyEventUp(e:KeyboardEvent):void
    
        var character:String = String.fromCharCode(e.charCode);

        if (e.keyCode == 13)
        
            txtP1T1.text = tempString;
        

    

现在唯一的问题是,如果你按住回车,它会清除第一个回车,然后只要你按住它就会继续添加。我需要一种方法来阻止这种情况的发生,而不会失去对文本区域的关注。

【问题讨论】:

【参考方案1】:

没有使用 flex3 的经验,但在基于使用事件驱动算法的想法进行粗略调查后,您似乎可以使用 TextEvents 并在传递给 @987654326 之前删除输入文本中的任何换行符/回车符@。

或者,您可能想看看KeyboardEvents。


但是,使用restrict 属性似乎确实是最简单的,因为您可以将其设置为"^\r",这将排除回车,而只输入回车。 (当然我建议使用"^\r\n" 来代替回车、换行以及两者的任意组合来提供整体换行保护。)

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/TextArea.html#restrict

【讨论】:

"^\r\n" 选项听起来不错,不幸的是 flex 似乎不理解这一点。我还尝试阻止 ASCII 值; “^\u000D”。尽管它会阻止所有其他 ASCII 字符,但也失败了。我猜回车(CR)不被认为是正确的字符。我想我需要尝试键盘事件。当文本区域具有焦点时,我将尝试禁用 CR @Michael:那么 flex3 文档中一定有问题,因为 \r 被列为可用于字符串文字的转义序列之一:livedocs.adobe.com/flex/3/html/… ...当您尝试使用它?您是否收到错误,或者它只是不阻止您在 TextArea 中输入换行符? 它不会阻止我在 TextArea 中输入换行符。我在键盘上按了回车键,它继续换行。非常令人沮丧。

以上是关于如何在可编辑的 TextArea 中禁用回车?的主要内容,如果未能解决你的问题,请参考以下文章

在可编辑div中插入文字或图片的问题解决思路

如何使嵌套元素在可拖动容器中不可拖动?

AngularJS,ngDraggable - 输入框在可拖动元素内不可编辑

如何阻止在textarea中输入回车?

如何禁用 NSTextAttachment 上的交互?

如何在不禁用整个控件的情况下禁用 TextArea 的鼠标滚轮?