web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Submitting form only w...
Power Apps
Unanswered

Submitting form only when certain criteria is met

(0) ShareShare
ReportReport
Posted on by 27

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. 

Categories:
  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @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.

  • LilaBeth Profile Picture
    27 on at

    @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. 

  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @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.

  • LilaBeth Profile Picture
    27 on at

    @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

     

    PowerApps_Formula_Errors.png
  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @LilaBeth 

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

  • LilaBeth Profile Picture
    27 on at

    @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.

  • RandyHayes Profile Picture
    76,299 Super User 2024 Season 1 on at

    @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.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Leaderboard > Power Apps

#1
11manish Profile Picture

11manish 397 Super User 2026 Season 2

#2
Mohsin Ali Profile Picture

Mohsin Ali 354

#3
WarrenBelz Profile Picture

WarrenBelz 232 Most Valuable Professional

Last 30 days Overall leaderboard