Reputation: 22958
In a Flex mobile app (or any Flex 4 application) - how can you enable/disable a button depending on the contents of 2 other fields?
I am pasting my very simple test code below and the problem with it is the syntax error in Flash Builder 4.7: The entity name must immediately follow the '&' in the entity reference.
- which probably means that ampersand is a special character, but how to solve this (probably frequent) problem?
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>
views/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>
Upvotes: 1
Views: 1294
Reputation: 39
when using binding expressions. mxml does not consider && rather write your expression as
& amp ; & amp ;
....also mxml does not read escape characters e.g. \t for tab...rather write your expression in actionscript then use data binding .cheers ;-)
Upvotes: 0
Reputation: 1313
You shall replace &&
with &&
when you write it outside of CDATA in mxml.
It is also better to use _username.text!=''
instead of _username.text.length > 0
because it will cause warnings at runtime as text
is not an eventdispatcher and it can't report length
changes. However, it will update button's availablity because text
will be changed itself and TextInput
will report it causing binding update.
Upvotes: 3