AI智能
改变未来

laravel 学习日记之 表单提交/AJAX提交与验证器validate之间的纠葛

首先,使用表单提交+Validate 验证 和 使用ajxa提交 +validate验证
后端不变,变化的只有html这边。

统一的后端代码

$rules = [\'username\' => \'required|max:64\',\'password\' => \'required|max:500\',];//定义提示信息$messages = [\'username.required\' => \'账号不能为空\',\'password.required\' => \'密码不能为空\',];$this->validate($request, $rules,$messages);return \'success\';

表单提交验证 html: 只需要注入下面一串代码,第一个div也可以不写 ,laravel会自动检测$errors信息,并将他显示在这串代码的位置

@if (count($errors)){{time()}}<div class=\"alert alert-danger\"><ul><li>{{ $errors->first()}}</li></ul></div><div class=\"alert alert-danger\"><ul>@foreach ($errors->all() as $error)<li>{{$error }}</li>@endforeach</ul></div>@endif

ajax提交 +validate : ajax这边需要自己处理后端返回的数据,所以要自己写js

$(\'#submit\').click(function () {$.ajax({url: \"{{route(\'login\')}}\",type: \"POST\",headers: {\'X-CSRF-TOKEN\': $(\'meta[name=\"_token\"]\').attr(\'content\')},data: $(\'#myform\').serialize(),// dataType: \"json\",success: function (data) {},error: function(data) {if (data.status === 422) {var errors = $.parseJSON(data.responseText);    //转json格式,或直接使用 data.responseJSON$.each(errors, function (key, value) {$(\'#response\').addClass(\"alert alert-danger\");if ($.isPlainObject(value)) {$.each(value, function (key, value) { //这里是对每个错误进行遍历,下面选择是否弹出或者展示页面上alert(value);// $(\'#response\').show().append(value + \"<br/>\");});} else {// $(\'#response\').show().append(value + \"<br/>\"); //this is my div with messages}});}},});});
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » laravel 学习日记之 表单提交/AJAX提交与验证器validate之间的纠葛