Validate answer in form textField

Silverstripe Version:
4.0

Question:
How I can validate answer “Code == 4” in Controller and than if it is OK send form to email.

class Contect_Controller extends PageController {
	private static $allowed_actions = ['ContactForm'];
	
    public function ContactForm() 
    { 
        $fields = new FieldList( 
			TextField::create('Name', 'Meno a priezvisko *'),
			EmailField::create('Email', 'Email *'),
			TextareaField::create('Message', 'Správa'),
			TextareaField::create('Code', '1 + 3 ='),
			CheckboxField::create('GDPR', 'Súhlasím so spracovaním osobných údajov. *')
        ); 
		
        $actions = new FieldList( 
            new FormAction('submit', 'Send') 
        ); 
	
		
		$required = new RequiredFields('Name', 'Email', 'Code', 'GDPR');
		
        return new Form($this, 'ContactForm', $fields, $actions, $required); 
		
		 return $form;
    }
	
	public function submit($data, $form) 
    { 
        $email = new Email(); 
         
        $email->setTo('support@zuzanasimova.sk'); 
        $email->setFrom('postmaster@zuzanasimova.sk'); 
        $email->setSubject("Správa z kontaktného formuláru - zuzanasimova.sk"); 
         
        $messageBody = " 
			<h2>Formulár zo stránky zuzanasimova.sk</h2>
            <h3>{$data['Name']} píše:</h3> 
			<p>{$data['Message']}</p>
			<p>Odosielateľa môžete kontaktovať na adrese: {$data['Email']}</p>  
			<h3>Súhlas s poskutnutím osobných údajov:</h3>
			<p>Súhlasím so spracovaním a uchovaním osobných údajov.</p>
        "; 
		
        $email->setBody($messageBody); 
        $email->send(); 
        return [
            'SuccessMessage' => 'Váš e-mail bol odoslaný. Ďakujeme budeme vás kontaktovať.',
            'Form' => ''
        ];
    }
}

A lot depends on how you want to deal with a validation failure really… you could do something as simple as wrapping your email in a conditional test of the relevant $data['Code'] value.

There are a few examples of different validation approaches in the form documentation:

So it’s worth having a quick look there to see what works for your scenario

thanks I create something like this:

class Contect_Controller extends PageController {
	private static $allowed_actions = ['ContactForm'];
	
    public function ContactForm() 
    { 
        $fields = new FieldList( 
			TextField::create('Name', 'Meno a priezvisko *'),
			EmailField::create('Email', 'Email *'),
			TextareaField::create('Message', 'Správa'),
			TextField::create('Code', 'Overovacia otázka: 1 + 3 = *'),
			CheckboxField::create('GDPR', 'Súhlasím so spracovaním osobných údajov. *')
        ); 
		
        $actions = new FieldList( 
            new FormAction('submit', 'Odoslať') 
        ); 
	
		
		$required = new RequiredFields('Name', 'Email', 'Code', 'GDPR');
		
        return new Form($this, 'ContactForm', $fields, $actions, $required); 
		
		 return $form;
    }
	
	public function submit($data, $form) 
    { 
		if($data['Code'] != 4) {
				
			return [
				'ErrorMessage' => 'Zadajte správnu odpoveď na ',
				'Form' => ''
			];
			
		} else {
			$email = new Email(); 
         
			$email->setTo('support@zuzanasimova.sk'); 
			$email->setFrom('postmaster@zuzanasimova.sk'); 
			$email->setSubject("Správa z kontaktného formuláru - zuzanasimova.sk"); 

			$messageBody = " 
				<h2>Formulár zo stránky zuzanasimova.sk</h2>
				<h3>{$data['Name']} píše:</h3> 
				<p>{$data['Message']}</p>
				<p>Odosielateľa môžete kontaktovať na adrese: {$data['Email']}</p>  
				<h3>Súhlas s poskutnutím osobných údajov:</h3>
				<p>Súhlasím so spracovaním a uchovaním osobných údajov.</p>
			"; 

			$email->setBody($messageBody); 
			$email->send(); 
			return [
				'SuccessMessage' => 'Váš e-mail bol odoslaný. Ďakujeme budeme vás kontaktovať.',
				'Form' => ''
			];
		}
    
    }
}

contact.ss:

<% if $ErrorMessage %>
						<div class="alert alert-danger">					
							$ErrorMessage <a href="#contact_form">overovaciu otázku vo formulári.</a>						
						</div>
<% end_if %>