Support

Account

Home Forums Front-end Issues acf_form not validating Title

Solving

acf_form not validating Title

  • I’m using acf_form() to create a form on a page where users can submit video posts. It’s very simple, there’s a Title field and a Video URL field.

    The problem I’m noticing is if a user leaves both the Title and URL fields blank and hits the submit button, only the URL field is showing a validation error and the form’s message says “Validation faield. 1 field requires attention.”

    I’m guessing the issue is that only the URL field is part of my ACF settings and the Title is just a default WP post title, but I need them both to be required and show errors if left blank. Here’s my code in the custom page template where the form appears:

    
    		<?php acf_form(array(
    			'post_id'		=> 'new_post',
    			'post_title'    => true,
    			'fields'		=> array(
    				'video_url' 	=> 'field_[MY-KEY-HERE]',
    			),
    			'new_post'		=> array(
    				'post_type'		=> 'video',
    				'post_status'	=> 'draft'
    			),
    			'submit_value'		=> 'Add new video for review'
    		)); ?>
    
  • Hi @recoildesign

    Please try the following JS script:

    <script type="text/javascript">
    (function($) {
        
        $(document).ready(function(){
            
            acf.add_filter('validation_complete', function( json, $form ){
    	
                // if errors?
                if( !$("input#acf-_post_title").val() ) {
                    
                    var temp = new Object();
                    temp["input"] = "acf[_post_title]";
                    temp["message"] = "Title is required";
                    json.errors.push(temp);
                    
                }
                
                
                // return
                return json;
                        
            });
            
        });
        
    })(jQuery);    
    </script>

    To learn more about it, please take a look at this page: https://www.advancedcustomfields.com/resources/adding-custom-javascript-fields/.

    Thanks!

  • Hello !

    Work better like this :

    <script type="text/javascript">
    (function($) {
        $(document).ready(function(){
            acf.add_filter('validation_complete', function( json, $form ){
    
                // if empty
                if( !$("input#acf-_post_title").val() ) {
    
                    var temp = new Object();
                    temp["input"] = "acf[_post_title]";
                    temp["message"] = "Le titre est requis";
    
                    // if no error
                    if(json.errors == 0){
                    	// set a new array
                    	json.errors = new Array();
                    }
    
                    // set valid to 0 instead of 1
                    json.valid = 0;
                    // push the error
                    json.errors.push(temp);
                }
                // return
                return json;       
            });
        });
    })(jQuery);    
    </script>

    Thank you James for the help !

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.