Flex 限制 textarea 中的字符数
Posted
技术标签:
【中文标题】Flex 限制 textarea 中的字符数【英文标题】:Flex limit number of characters in textarea 【发布时间】:2016-12-16 18:40:48 【问题描述】:可能之前有人问过这个问题,但没有得到任何正确的答案。
<s:TextArea fontSize="14" heightInLines="15" widthInChars="40" />
我有文本区域,我想限制(允许)最多 15 行,用户最多可以输入。 我试图找出任何可用的属性或尝试进行编程,但没有得到我不会得到的东西。
在文本更改时试图找出行数,但没有成功。
var textLength:Number = event.currentTarget.text.length; //It gives length of text.
我还想限制单行最多 40 个字符。然后在用户输入任何文本后,转到下一行。 这可能吗?
任何帮助将不胜感激。
编辑:
我有如下限制行数:
protected function onKeyDown(event:KeyboardEvent):void
if(txtArea.textFlow.flowComposer.numLines > txtArea.heightInLines && event.keyCode == Keyboard.ENTER)
txtArea.text = txtArea.text.substr(0, txtArea.selectionActivePosition-1) + txtArea.text.substr(txtArea.selectionActivePosition, txtArea.text.length);
但是,仍然不能限制每行 40 个字符。我怎样才能限制特定的行?
【问题讨论】:
不知道为什么人们不赞成这些问题。这么低质量吗? 【参考方案1】:这只是为了已经为您实现的自定义逻辑。你必须自己做。
监听文本输入事件
input.addEventListener(TextEvent.TEXT_INPUT, onInput);
在该处理程序中,阻止默认行为并执行所需的逻辑以将 text
属性设置为您想要的结果。
private function onInput(e:TextEvent):void
e.preventDefault();
trace("current text: " + e.target.text);
trace("inserted text: " + e.text);
// perform logic here
e.target.text = "result";
在您的情况下,使用正则表达式模式可能最方便地实现逻辑,该模式匹配最多 40 组最多 15 个字符加上换行符。
【讨论】:
感谢您的回复。我知道这样我可以获得当前和插入的文本。但是,我怎样才能在插入的行中总共有多少字符?我要进入哪一行。所以,如果超过 15,我可以防止 这在我回答的最后一段中有解释。 你能给我举个例子吗?我无法获得要输入文本的当前行。 看看这个问题:***.com/q/12627185/4347580以上是关于Flex 限制 textarea 中的字符数的主要内容,如果未能解决你的问题,请参考以下文章
将文本长度限制为 flex 3 中的 mx textarea 可用大小
TextArea htmlText 设置时不更新文本属性(Flex)