cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Frequent Visitor

Submitting form only when certain criteria is met

I have a form that has 5 separate fields that have to be filled in a certain way before the form is submitted. I have Business_EIN_Value should be 9 digits. Individual_SSN_Value should be 9 digits. Customer_ZIP_Value should be 5 digits. Business_Telephone_Value should be 10 digits. And finally Contact_Email_Value should be set up in an email format. Is there a way to create a formula that will look at all of these factors and not allow the user to submit the form without having the items filled in correctly.

 

I've been able to do this before with just one using If(IsMatch(Business_EIN_Value.Text, Digit & Digit & Digit & Digit & Digit & Digit & Digit & Digit & Digit), SubmitForm(AppForm);ResetForm(AppForm);Navigate(SuccessScreen), Notify("Please input a valid 9 digit Business EIN", Error))

 

However, I'm not sure how to do the email at all and I can't get the If IsMatch to nest correctly and I'm not sure if there's a way to do what I'm wanting. Any help, any direction would be greatly appreciated. 

7 REPLIES 7
Super User III
Super User III

@LilaBeth 

Funny...I was just in the middle of putting together a video to really demonstrate this. 

There are a variety of ways to go about it.  I will present a simple one for you.

 

1) Put a Toggle on your screen (call it tglFormValid) and set the Default property to the following:

yourForm.Valid &&
IsMatch(yourForm.Updates.Business_EIN_Value, "\d{9}") &&
IsMatch(yourForm.Updates.Contact_Email, Email) &&
IsMatch(yourForm.Updates.ZipField, "\d{5}") &&
IsMatch(yourForm.Updates.BusinessPhoneField, "\d{10}")

Replace all the names after the Updates. to be the correct names for your fields.  You should, as much as possible, reference the Updates property of the Form to get the actual values and not the controls in the datacards.

 

2) On the DisplayMode property of your Submit button, put the following formula:

If(tglFormValid.Value, Edit, Disabled)

 

Now your button will be disabled if the criteria for your fields is not met. 

 

I hope this is helpful for you.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
Check out my PowerApps Videos too!

@RandyHayes 

 

I've tried your suggestion and it continues to give me 4 errors. It's giving me The function 'IsMatch' has some invalid arguments. Invalid use of '.' and Name isn't valid. This identifier isn't recognized. And the final error is This rule creates a circular reference between properties, which is not allowed. A property cannot reference itself or other properties affected by its value. 

 

I've changed all of the fields to match the name of the fields in my form. If I remove the yourform.Updates (I have changed yourform to match my form's name) and add .text to the end (ex. Business_EIN_Value.text) then the errors goes away and I'm not quite sure what to do. 

Super User III
Super User III

@LilaBeth 

Sorry for the delay.

Are you still having the problem?

If so, can you tell me where you have the controls that I outlined in my solution?  You should not be getting a circular reference unless you have put any of these controls (the toggle or the button) INSIDE of your form...they should be on the screen only.

The yourForm.Updates.fieldName should all be set as suggested rather than referring to the control in the form.  You should have replaced yourForm with the name of your form and the fieldName with the appropriate field name defined in the datasource of your form.

If you are still seeing an issue, please send a screenshot of the formula with the errors visible.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
Check out my PowerApps Videos too!

@RandyHayes 

 

No problem. I must apologize for the delay. I misunderstood what you meant and that caused the circular reference. I moved the toggle from the form to the screen and that worked to remove the circular reference. However, I'm still receiving the same Name isn't valid, invalid use of ., and The function "IsMatch" has some invalid arguments. I've changed the your Form to match my form's name and changed the fieldName to match my fields and I'm still getting the same error. I've added a screenshot of the form and of the errors, let me know if you need more clear screenshots of the errors.

 

LilaBeth_0-1607380742208.png

 

Super User III
Super User III

@LilaBeth 

Sorry to drop the ball on this again.  Did you figure it out or still need some help?

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
Check out my PowerApps Videos too!

@RandyHayes 

 

No worries. I was able to get it to work by removing yourForm.Updates and adding .text. For example I changed it to IsMatch(Business_EIN_Value.text, "\d{9}") and the error disappears. I'm not sure the importance of yourForm.Updates, but by removing I was able to get it to work.

Super User III
Super User III

@LilaBeth 

The significance of the .Updates is that, in general, you should not refer to the controls inside the form datacards.  The reason is that you can change those control types in the form edit fields and, if you do, it will break the formulas.  Also, the .Updates is the "real" value that will be written to the datasource in the SubmitForm.  Forms allow you to alter the Update property of the datacard to alter what is written.  If you want to validate that value (rather than the raw control in the form), then you should rely on the Updates property of the form instead.

It's not a "rule", but it is a best practice to get in the habit of doing.

 

I did notice in your screenshot that you had .Update instead of .Updates in your formula - perhaps that was the cause of the error for you.

 

Glad you have been able to move forward though.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up. Solved your problem? - Click on Accept as Solution. Others seeking the same answers will be happy you did.
Check out my PowerApps Videos too!

Helpful resources

Announcements
secondImage

Experience what’s next for Power Apps

Join us for an in-depth look at the new Power Apps features and capabilities at the free Microsoft Business Applications Launch Event.

Power Apps Community Call

Power Apps Community Call: February

Did you miss the call? Check out the Power Apps Community Call here.

New Power Super Users

Congratulations!

We are excited to announce the Power Apps Super Users!

New Badges

New Solution Badges!

Check out our new profile badges recognizing authored solutions!

Top Solution Authors
Top Kudoed Authors
Users online (93,076)