Ajax не отображает само сообщение об ошибке, только окно - PullRequest
0 голосов
/ 05 октября 2019

По какой-то причине AJAX не передает сообщение об ошибке. Все, что я пытаюсь отправить в форме, я получаю красную линию (стиль сообщения об ошибке), но без сообщения об ошибке init, что затрудняет отладку. Есть идеи, из-за чего сообщение об ошибке не отображается?

Моя функция AJAX, указывающая на метод хранения в контроллере TicketCategory:

$(document).ready(function() {
    $("#btn-add").click(function() { 
        $.ajaxSetup({ 
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
        $.ajax({ 
            type: 'POST',
            url: '/ticket-category/store',
            data: {
                name: $("#frmAddTicketCategory input[name=name]").val(),
            },
            dataType: 'json', 
                $('#frmAddTicketCategory').trigger("reset");
                $("#frmAddTicketCategory .close").click();
                window.location.reload();
            },
            error: function(data) {
                var errors = $.parseJSON(data.responseText);
                $('#add-ticket-category-errors').html('');
                $.each(errors.messages, function(key, value) {
                    $('#add-ticket-category-errors').append('<li>' + value + '</li>');
                });
                $("#add-error-bag").show();
            }
        });
    });

Мое представление:

<div class="modal fade" id="addTicketCategoryModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <form id="frmAddTicketCategory">
                <div class="modal-header">
                    <h4 class="modal-title">
                        Add New Task
                    </h4>
                    <button aria-hidden="true" class="close" data-dismiss="modal" type="button">
                        ×
                    </button>
                </div>
                <div class="modal-body">
                    <div class="alert alert-danger" id="add-error-bag">
                        <ul id="add-ticket-category-errors">
                        </ul>
                    </div>
                    <div class="form-group">
                        <label>
                            Name
                        </label>
                        <input class="form-control" id="name" name="name" type="text">
                        </input>
                    </div>
                </div>
                <div class="modal-footer">
                    <input class="btn btn-default" data-dismiss="modal" type="button" value="Cancel">
                        <button class="btn btn-info" id="btn-add" type="button" value="add">
                            Add New Task
                        </button>
                    </input>
                </div>
            </form>
        </div>
    </div>
</div>

Контроллер:

public function create()
{
    return view('ticket_category/ticket_cat',[
        'tickets' => TicketCategory::all()
    ]);
}

    public function store(Request $request)
    {
        $validator = Validator::make($request->input(), array(
            'name' => 'required'
        ));

        if ($validator->fails()) {
            return response()->json([
                'error'    => true,
                'messages' => $validator->errors(),
            ], 422);
        }

        $ticket_category = TicketCategory::create([$request->name]);

        return response()->json([
            'error' => false,
            'ticket_category'  => $ticket_category,
        ], 200);
    }

см. Сообщение об ошибке

1 Ответ

0 голосов
/ 05 октября 2019

Я думаю, value - это массив ошибок для поля, поэтому вы не можете отобразить ошибки. Попробуйте это

$('#add-ticket-category-errors').append('<li>' + value[0] + '</li>')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...