Ajax-запрос не является ошибкой функции в jQuery - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь показать свои ошибки валидации, используя ajax-запрос, возвращенный валидатором, но консоль продолжает возвращать эту ошибку. Это из-за моей версии jQuery (3.4.1)?

Вывод на консоль JS

TypeError: $.ajax(...).done(...).error is not a function

Код Ajax

$(document).ready(function() {
    // Validation for all field
    $(".guest-query-submit").click(function (e) {
        e.preventDefault(); //Prevent default action

        //Define inputs
        let _token = $("input[name='_token']").val();
        let title = $("input[name='title']").val();
        let description = $("input[name='description']").val();
        let category = $("input[name='category']").val();
        let attachment = $("input[name='attachment']").val();
        let county = $("input[name='county']").val();
        let startDate = $("input[name='startDate']").val();
        let endDate = $("input[name='endDate']").val();
        let flexibility = $("input[name='flexibility']").val();
        let contactName = $("input[name='contactName']").val();
        let contactEmail = $("input[name='contactEmail']").val();
        let contactNumber = $("input[name='contactNumber']").val();

        //Starting ajax request
        $.ajax({
            url: "{{route('send-guest-query')}}",
            type: 'POST',
            data: {
                _token:_token,
                title:title,
                description:description,
                category:category,
                attachment:attachment,
                county:county,
                startDate:startDate,
                endDate:endDate,
                flexibility:flexibility,
                contactName:contactName,
                contactEmail:contactEmail,
                contactNumber:contactNumber },
            dataType: "json"
        }).done (function (data) {
            if(data.status === 200) {
                Swal.fire({ //SweetAlert
                    title: 'Success',
                    text: 'Your query was sent successfully!',
                    type: 'success',
                    confirmButtonText: 'Continue'
                })
            }}).error(function (data) {
            if (data.status === 422 && data.responseJSON) {
                console.log(data);
                if (Object.keys(data.responseJSON.errors).length) {
                    for (field in data.responseJSON.errors) {
                        let error = data.responseJSON.errors[field];
                        let input = '#Modal input[name=' + field + ']';
                        $(input).addClass('is-invalid');
                        $(input).next('span').find('strong').text(error[0]);
                    }
                }
            }
        })
     });

Часть проверки в Laravel

$validator = Validator::make($request->all(),
        [
            'title' => 'required|string',
//            'description' => 'required|string',
//            'category' => 'required',
//            'county' => 'required',
            'startDate' => 'required',
            'endDate' => 'required',
//            'flexibility' => 'required',
            'contactName' => 'required',
            'contactEmail' => 'required',
            'contactNumber' => 'required|integer',
        ]);
        if ($validator->passes()) {
            return response()->json(['success'=>'Query successfully sent!'],200);
        }
        return response()->json(['error'=>$validator->errors()->all()],422);

Также пока в этой теме. Это даже рекомендуется по сегодняшнему стандарту для решения такой проверки при использовании модального. Я знаю, что использование Vue, вероятно, облегчит мне жизнь, но я не хочу касаться Vue, пока не овладею базовыми знаниями JavaScript.

1 Ответ

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

ну, я не знаю, поможет ли это, но обычно я использую ajax-запросы. Мне это гораздо проще. Надеюсь, это поможет

.

   $.ajax({
            contentType: *the type your sending ex:'application/json'*,
            url: *Your url*,
            type: *POST or GET*,
            data: *Your Data ex: JSON.stringify(model) since i am sending json*,
            success: function (data) {
            },
            error: function (err) {
                console.error(err);
            }
        });
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...