Hello,
We require to enforce text input for 2 fields, which are linked to a collection.
When the person wants to proceed and the fields are blank, the alert is shown (to indicate they are required).
However, people are still able to circumvent that by entering spaces. PowerApps picks this up as text and thus does not consider this textfield 'blank' anymore.
Is there a function that checks whether a field includes data (and considers an entry that includes spaces only as 'blank')?
If(IsBlank(textinputTaskLocation), UpdateContext({Alert1: true})); If(IsBlank(textinputTaskDescription), UpdateContext({Alert2: true})); If(!IsBlank(textinputTaskLocation), UpdateContext({Alert1: false})); If(!IsBlank(textinputTaskDescription), UpdateContext({Alert2: false})); If(!IsBlank(textinputTaskLocation) && !IsBlank(textinputTaskDescription),
Navigate(InspectionScreen1, Fade), false)
Solved! Go to Solution.
Sorry. My bad. The formula should be:
If(IsBlank(Trim(textinputTaskDescription.Text)), UpdateContext({Alert2: true}), UpdateContext({Alert2: false}));
Hello DanielaH,
You should be able to use "Trim" function to get rid of all the spaces before checking the field value. Please see this page: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-trim
Hi dinusc
Thanks for your suggestion.
However the Trim() or TrimEnds() function did not work here.
I assume because they refer to removing spaces before/after/between strings and therefore does not work if there is no string?
It does work to add the following condition, but then I'll need to add this multiple times to account for several space entries. It just does not seem like an elegant way 😉
If(textinputTaskDescription.Text = " ", UpdateContext({Alert2: true})); If(textinputTaskDescription.Text = " ", UpdateContext({Alert2: true})); If(textinputTaskDescription.Text = " ", UpdateContext({Alert2: true})); If(textinputTaskDescription.Text = " ", UpdateContext({Alert2: true})); If(textinputTaskDescription.Text = " ", UpdateContext({Alert2: true}));
Can you please try the following:
If(IsBlank(textinputTaskDescription.Text), UpdateContext({Alert2: true}), UpdateContext({Alert2: false}));
Thanks - Yes I tried this:
The alert will only show up if the field is really blank. As soon as I add a space the alert does now show anymore.
IsBlank(Substitute(textinputTaskDescription.Text," ",""))
This will return true for any string that is a series of spaces.
On a more general note however, I tend to lean more towards checking the length of the provided string when validating text fields.This way you can check if the user entered anything that is a single character (like ".' or " " for instance) to circumvent the field.
Although I don't know your specific circumstances I would use something like this:
UpdateContext({Alert1: !Len(textinputTaskLocation.Text)>1}); UpdateContext({Alert2: !Len(textinputTaskDescription.Text)>1})
This would enforce a minimum of 2 characters in both of your fields and updates your Alert variables. You could also combine these two for an even more robust validation that checks minimum length and checks for the entering of spaces.
UpdateContext({Alert1: !Len(Substitute(textinputTaskLocation.Text," ",""))>1}); UpdateContext({Alert2: !Len(Substitute(textinputTaskDescription.Text," ",""))>1})
Sorry. My bad. The formula should be:
If(IsBlank(Trim(textinputTaskDescription.Text)), UpdateContext({Alert2: true}), UpdateContext({Alert2: false}));
User | Count |
---|---|
144 | |
142 | |
78 | |
76 | |
72 |
User | Count |
---|---|
227 | |
145 | |
78 | |
62 | |
58 |