Scratching my head on this, I have what seems like a simple check on an input field to show that if you type the wrong value in then it should show an error.
The check is “If the number entered on the field does not equal the number in the global variable, show error”
But this always evaluates as true. What’s up with that? See attached demo.
Short answer: change the case for the Check button to:
If text on QuantEntered does not equal “[[Number * 1]]”)
Show Error
This has to do with Axure using the same “var type” for both strings and numbers, so I think it turns out in your prototype you are comparing a number to a string (where 3 does not equal “3” --if that makes any sense) --and Axure isn’t converting the var types correctly, the way you would expect. …Or it’s something like that.
You can force Axure to treat a variable (global variable, local variable (the LVAR1 pointer), or function return) as a “true number” if you perform some math with it. I think of this as “manually converting” a string to a number. The simplest way to do this is [[LVAR1 * 1]] , or in your example with a global variable named “Number”, [[Number * 1]].
Now I’m scratching my head because I thought the fix would be to “manually convert” the text value on your Text Field (named “QuantEntered”) to a number and comparing that to the global variable, named “Number” which you set to a random number in OnPageLoad event. But that doesn’t do it. However, when I converted the global variable (using [[Number * 1]] ) it works correctly.
I checked this out (no pun intended) on RP9 and the same behavior (bug) happens. Confusing.