I think that main problem here is that you try to use “fail” to indicate the state where form has errors. This is wrong, because ajax call will “success” even when form will have errors, because from jquery point of view – it made a ajax call and got response.
Fail will be called only on 404 errors etc.
Related Posts:
- Displaying PHP Errors from admin-ajax.php
- Ajax Redirect role = ‘Editor’ to their Dashboard after register
- Check if username exist with AJAX
- How to check username availability with ajax at registration
- How to solve “Updating failed” with 403 Error when trying to save a Site or Post in Gutenberg?
- wp_handle_upload returns empty error array
- Gravity form Load By Ajax Cannot Submit – Error 400
- eventON plugin AJAX call triggers website crash
- contact form ajax empty response error message
- How to make registration form ajax?
- Register Template
- change wordpress pagination url after doing the request
- WordPress POST AJAX call, var_dump($_POST) NULL and AJAX response empty when inside ob_start
- WordPress 403 error on form submission with Ajax
- admin-ajax.php 403 errors – no caching, permissions are fine
- Registration form AJAX check for existing username (simple version)
- Syntax error on query_vars while handling with Jquery
- how to get password from user instead wp-generate-password
- While doing ajax, WordPress returning internal server error 500 and stating that my theme functions are undefined
- I’m trying to register with AJAX
- PHP “php://input” vs $_POST
- Google Maps API throws “Uncaught ReferenceError: google is not defined” only when using AJAX
- Access-Control-Allow-Origin error sending a jQuery Post to Google API’s
- Access-Control-Allow-Origin error sending a jQuery Post to Google API’s
- How to solve the error “SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.” in IE
- Show spinner GIF during an $http request in AngularJS?
- Refresh HTML Page in Browser Automatically on Timer – Every 15 Min
- JavaScript implementation of Gzip
- jQuery: Performing synchronous AJAX requests
- ASP.NET MVC controller actions that return JSON or partial html
- jQuery’s .on() method combined with the submit event
- Ajax takes 10x as long as it should/could
- How to check if I am in admin-ajax.php?
- Best way to end WordPress ajax request and why?
- How to load wp_editor() through AJAX/jQuery
- How to cache json with wp-super cache
- Load minimum WordPress environment
- Why use wp_send_json() over echo json_encode()?
- Why use admin-ajax.php and how does it work?
- How to get a unique nonce for each Ajax request?
- Open a Thickbox with content trough AJAX
- Initialize TinyMCE editor / visual editor after AJAX insert
- Why not register shortcodes if is_admin dashboard?
- WordPress AJAX with Axios
- Why is die() used at the end of function that handles an Ajax request?
- Why might a plugin’s ‘do_shortcode’ not work in an AJAX request?
- Making my AJAX powered WordPress Crawlable
- Is there a JavaScript API? How to access public and private data in JS?
- Get Previous & Next posts by Post ID
- failed to load wp-admin/admin-ajax.php
- Using Backbone with the WordPress AJAX API
- Using Ajax with a Class file
- Ajax in a settings page (update_option is undefined)
- How to pass data parameter to ajax action function handler
- WordPress Ajax Data Security
- wp_set_auth_cookie() doesn’t work in Ajax call
- gettext does not translate when called in ajax
- Execute one AJAX request after another AJAX request finished
- WP-AJAX vs WP REST API: What to use for requests to the website from outside?
- Ajax and autocomplete
- How to add to cart via AJAX Woocommerce [closed]
- Nonces and Cache
- SSL breaks customizer: page isn’t returned from ajax
- Why is a 500 error generated by admin-ajax.php not going into the Apache error log?
- Are ‘wp_ajax’ and ‘wp_ajax_nopriv’ exclusive to authenticated and non-authenticated users?
- How to HTML5 FormData Ajax
- admin-ajax.php vs Custom Page Template for Ajax Requests
- How to override WP_DEBUG for Ajax responses?
- Stop admin-ajax?
- redirect out of wp-admin, without losing admin-ajax.php
- Call to undefined function add_action()
- Is it safe to assume that a nonce may be validated more than once?
- How build a custom login/register form with error handling?
- Including WordPress in RESTful API
- Multiple ajax nonce requests
- Get posts with ajax
- admin-ajax.php doesn’t work when using POST data and Axios
- How to call a PHP function with Ajax when the user clicks a button
- REST API endpoint for elasticpress autosuggest
- Ajax for non-logged-in users
- Contact Form 7 Custom Post Action
- Custom Form with Ajax
- How to process ajax requests correctly using ajax plugins
- ajax – why multiple calls to wp_create_nonce() return same value?
- Update user meta using with ajax
- Registering AJAX callback function that is part of a class without instantiating the class in function.php
- WordPress function that makes HTML safe to be sent via AJAX request
- How do I hook an Ajax request into a PHP callback?
- AJAX request on the frontend always returns 0 if user is not admin
- admin-ajax.php returns 0. How do I debug it and fix it?
- Ajax requests without JQuery
- Admin Notification after save_post, when ajax saving in gutenberg
- How to properly use wp.ajax.post?
- Load tinyMCE / wp_editor() via AJAX [duplicate]
- How to tie built in AJAX to an add_action?
- Using Nonces for AJAX that only retrieves data
- WordPress AJAX Login Screen
- AJAX vs Fragment Caching for W3 Total Cache [closed]
- Saving (Updating) Post / Page Edits With AJAX
- Is there any way of of making an admin-ajax request without the use of die()?