Hi I have created a GUI using tkinter, it accepts entry from users.
I have created my own presence checks and 'spelling' checks to ensure that the user only enters accepted values. 
But each time that I enter these values it makes the user click on the submit button multiple times before the output screen comes up. 
Is this because I have used multiple functions? 
Are there any other ways to do this?

```
def Search():
    global E1, E2, E3, E4, file

    def PresenceValidation():

        if E1.get() ==(''):
            root2=Tk()
            errortext = Label(root2, text = "Please enter eye colour")  
            errortext.pack()
        elif E2.get() ==(''):
            root2=Tk()
            root2.configure(bg="white")
            errortext = Label(root2, text = "Please enter age")
            errortext.pack()
        elif E3.get() ==(''):
            root2=Tk()
            root2.configure(bg="white")
            errortext = Label(root2, text = "Please enter hair colour")
            errortext.pack()
        elif E4.get() ==(''):
            root2=Tk()
            root2.configure(bg="white")
            errortext = Label(root2, text = "Please enter shoesize")
            errortext.pack()            
        else:
            button = Button(root, text = "Submit information", command=SpellCheck)
            button.grid(row=3, column=2, padx = 5)

    def SpellCheck():
        if E1.get().lower() not in ('blue', 'brown', 'green'):
            root2=Tk()
            root2.configure(bg="white")
            errortext = Label(root2, text = "Please enter eye colour")
            message= Label(root2, text = "Blue, Brown or Green")
            errortext.pack()
            message.pack()
        elif E2.get().lower()  not in ('10-20', '20-30', '30-40','40+'):
            root2=Tk()
            root2.configure(bg="white")
            errortext = Label(root2, text = "Please enter a valid age group")
            message=Label(root2, text = "10-20, 20-30, 30-40 or 40+")
            errortext.pack()
            message.pack()
        elif E3.get().lower()  not in ('Brown', 'Black', 'Blonde', 'Auburn'):
            root2=Tk()
            root2.configure(bg="white")
            errortext = Label(root2, text = "Please enter a valid hair colour")
            message = Label(root2, text = "Brown, Black, Blonde or Auburn")
            errortext.pack()
            message.pack()
        elif E4.get().lower() not in ('1', '2', '3','4','5','6','7','8+'):
            root2=Tk()
            root2.configure(bg="white")
            errortext = Label(root2, text = "Please enter a valid shoesize")
            message = Label(root2, text = "1,2,3,4,5,6,7,8+")
            errortext.pack()
            message.pack()         
        else:
            submitbutton = Button(window, text = "Submit information", command=Submit)
            submitbutton.grid(row=3, column=2, padx = 5)   

    root = Tk()
    root.title ("Search for matches")

    #text that will be shown to the user
    root.configure(bg="white")
    Label(root, text="Please enter eye colour").grid(row=0)
    Label(root, text="Please enter age").grid(row=1)
    Label(root, text="Please enter hair colour").grid(row=2)
    Label(root, text="Please enter shoesize").grid(row=3)

    #Create user entry points
    E1= Entry(root)
    E2= Entry(root)
    E3= Entry(root)
    E4= Entry(root)
    # locating input boxes to area on the screen
    E1.grid(row=0, column=1)
    E2.grid(row=1, column=1)
    E3.grid(row=2, column=1)
    E4.grid(row=3, column=1)

    submitbutton = Button(window, text = "Submit information", command=PresenceValidation)
    submitbutton.grid(row=3, column=2, padx = 5)

    def Quit():
    window.destroy()

    quitbton = Button (window, text ="QUIT", command=Quit)
    quitbton.grid(row=3, column=3, padx=5)

```