【问题标题】:Ajax empty form alert does not show properly [closed]Ajax 空表单警报未正确显示 [关闭]
【发布时间】:2021-09-01 22:50:14
【问题描述】:

如果字段为空,我正在尝试在表单中输出“缺失字段”文本框,这是我的上下文代码:

控制器/功能

public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'category_name'=>'required|max:191',
            'category_description'=>'required|max:191',
        ]);
        if($validator->fails())
        {
            return response()->json([
                'status'=>400,
                'erros'=>$validator->messages(),
            ]);
        }
        else {
            $category = new HmsBbrCategory;
            $category->category_name = $request->input('category_name');
            $category->category_description = $request->input('category_description');
            $category->save();
            return response()->json([
                'status'=>200,
                'message'=>'Category Added!',
               
            ]);
        }
        
    }

AJAX

<script>
    $(document).ready(function (){
        $(document).on('click', '.add_category', function(e){
            e.preventDefault();
            var category_data = {
                'category_name': $('.category_name').val(),
                'category_description': $('.category_description').val(),
            }
            
            //token taken from laravel documentation
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            // console.log(category_data);
            $.ajax({
                type: "POST",
                url: "/clinical/bbr-category-configuration",
                data: "category_data",
                dataType: "json",
                success: function (response){
                    if(response.status == 400)
                    {
                        $('#saveform_errList').html("");
                        $('#saveform_errList').addClass('alert alert-danger');
                        $.each(response.errors, function (key, err_values) {
                            $('#saveform_errList').append('<li>'+err_values+'</li>');
                        });
                    }
                }
            });
        });
    });
</script>

我还通过将它添加到我的模式来输出错误 ID:

<ul id="saveform_errList"></ul>

如果错误 400 有效,我在控制台中对其进行了测试,并且它会显示缺少哪些字段,这只需在我的 ajax 中添加 console.log(response); 即可完成

所以我尝试在模态本身中显示同样的错误,所以在if(response.status==400) 如上图,我添加了以下内容:

                 if(response.status == 400)
                {
                    $('#saveform_errList').html("");
                    $('#saveform_errList').addClass('alert alert-danger');
                    $.each(response.errors, function (key, err_values) {
                        $('#saveform_errList').append('<li>'+err_values+'</li>');
                    });
                }

我只得到了警报危险的用户界面:

我错过了什么?

【问题讨论】:

  • response.errors 应该是response.erros
  • 或者……反过来,@Swati?将控制器中 JSON 中的erros 错字更改为errors。
  • response.erros?没有 r?
  • 哦,它在我的控制器里............谢谢

标签: ajax laravel function error-handling bootstrap-modal


【解决方案1】:

改变

response.erros

$.each(response.erros, function (key, err_values) {
      $('#saveform_errList').append('<li>'+err_values+'</li>');
});

【讨论】:

    猜你喜欢
    • 2018-06-26
    • 2016-04-04
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多