How to tell if a field is "closed"?

Mark Waddingham mark at livecode.com
Tue Feb 5 14:53:41 EST 2019


On 2019-02-05 20:25, Paul Dupuis via use-livecode wrote:
> I have a problem for which I should probably redesign the user
> interface, but would rather not do so for many reasons.
> 
> The problem is this:
> 
> 1) There are some fields on a card. Each field has a "closeField"
> handler that checks the fields content for validity and presents
> appropriate error messages (via a standard 'answer" command).
> 2) There is an "Import" button that collects the field values and lots
> of other data and does a task in my application.
> 3) If a user edits a fields and enters an invalid value and does not
> click, tab, or press the return key to "close" the field and trigger
> the "closeField" message, but immediately clicks on the "import"
> button, my import script starts using the invalid value from the open
> field while at the same time a closeField message does get send and an
> answer dialog appears telling what is invalid about the entry.
> 
> However, I am wondering if anyone in the LiveCode brain trust has
> figured out a better way to handle something like this?

How about this...

In your closeField handlers, if the field fails validation do:

   if <not validated> then
     answer "Field failed validation" with "Oops - I'll correct it" or 
"Cancel"
     if it is "Cancel" then
       exit to top
     end if
     focus on me
     exit closeField
   end if

Then in your import button do:

   on mouseUp
     focus on nothing
     if the selectedField is not empty then
       exit mouseUp
     end if
     answer "Go!"
   end mouseUp

This should mean the import step won't run until a closeField handler 
has successfully finished.

Warmest Regards,

Mark.

-- 
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps




More information about the use-livecode mailing list