仅当2个TextInput字段不为空时启用按钮 - 附加代码和屏幕截图

时间:2012-12-20 13:53:27

标签: actionscript-3 flex flex4 flex4.6 flex-mobile

在Flex移动应用程序(或任何Flex 4应用程序)中 - 如何根据其他2个字段的内容启用/禁用按钮?

enter image description here

我正在粘贴下面非常简单的测试代码,其中的问题是Flash Builder 4.7中的语法错误:The entity name must immediately follow the '&' in the entity reference. - 这可能意味着符号是一个特殊字符,但如何解决这个问题(可能是频繁的) )问题?

TestApp.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    firstView="views.Home" 
    applicationDPI="160">
</s:ViewNavigatorApplication>

视图/ Home.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        title="How to enable Login button?">

    <s:layout>
        <s:VerticalLayout paddingTop="8"
            horizontalAlign="center" gap="8" />
    </s:layout>

    <s:Label text="Username:" />
    <s:TextInput id="_username" />
    <s:Label text="Password:" />
    <s:TextInput id="_password" />

    <s:Button id="_login" 
              label="Login" 
              enabled="{_username.text.length > 0 && _password.text.length > 0}" />
</s:View>

2 个答案:

答案 0 :(得分:3)

当你在mxml中将其写在CDATA之外时,你应该用&&替换&amp;&amp;

最好使用_username.text!=''而不是_username.text.length > 0,因为它会在运行时导致警告,因为text不是事件调度程序,它无法报告length更改。但是,它会更新按钮的可用性,因为text将自行更改,TextInput将报告它导致绑定更新。

答案 1 :(得分:0)

使用绑定表达式时。 mxml不考虑&amp;&amp;而是把你的表达写成

  

&安培;放大器&安培; amp;

.... mxml也不会读取转义字符,例如\ t for tab ...而是在actionscript中编写表达式,然后使用数据绑定.cheers; - )