繁体   English   中英

Ajax 请求不是 jQuery 中的 function 错误

[英]Ajax request is not function error in jQuery

我正在尝试使用验证器返回的 ajax 请求显示我的验证错误,但控制台不断返回此错误。 是因为我的 jQuery 版本(3.4.1)吗?

JS控制台output

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 可能会让我的生活更轻松,但在我对 JavaScript 有基本了解之前,我不想接触 Vue。

好吧,我不知道这是否会有所帮助,但通常这是我使用 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); } }); },

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM