在 Flex 中获取文本输入字符数
Get textinput number of character in Flex
我在 flex 应用程序中有 textinput。
<s:TextInput id="txtGuestCount" maxChars="2" editable="false"/>
我将 maxChars
限制为 2。当我从 textinput 中删除 editable="false"
并使用键盘输入时,它会起作用。
问题:
但是当我使用按钮点击时同样的事情不起作用:
<s:Button width="50" height="50" chromeColor="#ffffff" label="1" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="2" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="3" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="4" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="5" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="6" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="7" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="8" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="9" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="0" buttonMode="true" click="onNumberClick(event)"/>
在文本输入中单击按钮插入标签值,例如:
protected function onNumberClick(event:MouseEvent):void
{
txtGuestCount.text += event.currentTarget.label;
}
上面的东西不工作。它会在 textInput
中插入超过 2 个字符。
有人帮我解决这个问题吗?
我如何限制文本输入中最多 2 个字符?
根据 manual,在代码中更改 text
时不检查 maxChars
。所以,你必须手动控制 text
的新值不超过 2 个字符。一个例子:
protected function onNumberClick(event:MouseEvent):void
{
var s:String=txtGuestCount.text;
if (s.length==2) s=s.substr(1); // drop first char
s+=event.currentTarget.label;
// if (s.length>2) s=s.substr(0,2); // if necessary, truncate
txtGuestCount.text = s;
}
我在 flex 应用程序中有 textinput。
<s:TextInput id="txtGuestCount" maxChars="2" editable="false"/>
我将 maxChars
限制为 2。当我从 textinput 中删除 editable="false"
并使用键盘输入时,它会起作用。
问题:
但是当我使用按钮点击时同样的事情不起作用:
<s:Button width="50" height="50" chromeColor="#ffffff" label="1" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="2" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="3" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="4" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="5" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="6" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="7" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="8" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="9" buttonMode="true" click="onNumberClick(event)"/>
<s:Button width="50" height="50" chromeColor="#ffffff" label="0" buttonMode="true" click="onNumberClick(event)"/>
在文本输入中单击按钮插入标签值,例如:
protected function onNumberClick(event:MouseEvent):void
{
txtGuestCount.text += event.currentTarget.label;
}
上面的东西不工作。它会在 textInput
中插入超过 2 个字符。
有人帮我解决这个问题吗?
我如何限制文本输入中最多 2 个字符?
根据 manual,在代码中更改 text
时不检查 maxChars
。所以,你必须手动控制 text
的新值不超过 2 个字符。一个例子:
protected function onNumberClick(event:MouseEvent):void
{
var s:String=txtGuestCount.text;
if (s.length==2) s=s.substr(1); // drop first char
s+=event.currentTarget.label;
// if (s.length>2) s=s.substr(0,2); // if necessary, truncate
txtGuestCount.text = s;
}