display Laravel validation errors with AJAX

18,575

Try like this

error: function (xhr) {
   $('#validation-errors').html('');
   $.each(xhr.responseJSON.errors, function(key,value) {
     $('#validation-errors').append('<div class="alert alert-danger">'+value+'</div');
 }); 
},

Here validation-errors is the div id. You can use your own div id.

Share:
18,575
Emad
Author by

Emad

Professional full stack developer. having MSc in software engineering with grade A. Web application designer/developer with over 11 years of experience. Android application designer/developer with over 7 years of experience. Highly skilled in web/mobile application security/penTest with over 3 years of experience. Familiar with desktop application development (Native/Cross-platform). Programming languages courses instructor at university for more than 4 years. Highly skilled in reverse engineering of Android/Windows applications with over 2 years of experience. More info...

Updated on August 08, 2022

Comments

  • Emad
    Emad almost 2 years

    I have a Form in Laravel that submits with Ajax.every thing works well but the problem is that I can't render the validation's errors in HTML.
    (I want to display the errors in <ul><li> in my HTML)

    Here is my Ajax request:

     $(document).ready(function () {
            $("#submit").click(function (xhr) {
                xhr.preventDefault(),
                    $.ajax({
                        type: "POST",
                        contentType: "charset=utf-8",
                        dataType: 'json',
                        url: "{{route('messages.store')}}",
                        headers: {
                            "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content")
                        },
                        data: {
                            name: $("#name").val(),
                            email: $("#email").val(),
                            phone: $("#company").val(),
                            subject: $("#subject").val(),
                            message: $("#message").val()
                        },
                        success: function () {
                            alert('True');
                        },
                        error: function (xhr) {
                            console.log((xhr.responseJSON.errors));
                        }
                    }, "json")
            })
        });
    

    Console logs:

    screenshot

    Thanks for any help.

  • user7747472
    user7747472 about 6 years
    It does not come inside success response it come as error but yeah that will wok
  • Sathishkumar Rakkiyasamy
    Sathishkumar Rakkiyasamy about 6 years
    Can you please add the PHP code to understad why it is coming to error block?.
  • Emad
    Emad about 6 years
    Thank you @Sathishkumar, that's exactly what I was looking for.
  • Sathishkumar Rakkiyasamy
    Sathishkumar Rakkiyasamy about 6 years
    Please check my updated answer. I have added $('#validation-errors').html('') to clear the existing error messages.
  • Sathishkumar Rakkiyasamy
    Sathishkumar Rakkiyasamy about 6 years
    @Eмαd Welcome ;)