单个输入字段的Laravel验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单个输入字段的Laravel验证相关的知识,希望对你有一定的参考价值。

我在我的jquery中使用ajax调用将用户输入从我的刀片发送到我的控制器。

我有一个输入字段

<div class="col-md-3">
    <input type="text" class="form-control inputProfilePage" id="fname" name="fname" placeholder="First Name"
           value="{{ Auth::user()->fname }}">
  </div>
  <div class="col-md-3">
    <input type="text" class="form-control inputProfilePage" id="lname" name="lname" placeholder="Last Name"
           value="{{ Auth::user()->lname }}">
  </div>

fname用于firstname,lname用于lastname

在我的jquery中,我有一个电话

$('.selectProfilePage').change(function(){
          var val = $(this).val();
          var field = $(this).attr('id');
          updateProfilePage(val, field);
      });

field是字段的名称,val是用户输入的值。

updateProfilePage是一个ajax调用

function updateProfilePage(val, field) {
          $.ajaxSetup({
              headers: {
                  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
              }
          });
          $.ajax({
              type: 'POST',
              url: '/userprofilepage',
              data: {
                  val: val,
                  field: field
              },
              success: function (msg) {
                  console.log("Profile page has been updated:" + val);
              },
              error: function (msg) {
                  console.log("Profile page has not been updated:" + msg);
              }
          });
      }

在我的路线文件中,这会调用我的商店功能。我正在努力的是如何验证用户输入的值。这是我的控制器中的商店方法

 public function store(Request $request)
    {
            $this->validate($request, [
                'val' => 'alpha'
            ]);
    }

如果用户输入任何非字母的内容,我想在我的刀片上打印出错误消息。

我将以下代码添加到我的刀片,但仍然没有出现错误

<div class="alert alert-error">
   <ul>
       @foreach($errors->all() as $error)
           <li>{{$error}}</li>
       @endforeach
   </ul>
</div>

那么我做错了什么?如果用户在姓氏的名字输入中输入任何非字母的内容,我想让错误显示在我的刀片中。

答案

每次加载页面时,服务器都会生成刀片语法,因为您在ajax中发送表单没有重新加载页面,要在警报框中添加错误,我会这样做:(未测试)

function updateProfilePage(val, field) {
          $.ajaxSetup({
              headers: {
                  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
              }
          });
          $.ajax({
              type: 'POST',
              url: '/userprofilepage',
              data: {
                  val: val,
                  field: field
              }
          }).done(function () {
                $('.alert').find('ul').append('<li>Profile page has been updated:' + data + '</li>');
          }).fail(function () {
                $('.alert').find('ul').append('<li>Profile page has not been updated:' + data + '</li>');
          }).always(function (e) {
                console.log(e);
          });
      }

以上是关于单个输入字段的Laravel验证的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 & 在单个字段中验证多个电子邮件地址

Laravel:重复字段(和字段组):表单模型绑定

Laravel 验证数组迭代

在 Laravel 5 中验证动态添加的输入字段

laravel 中动态输入字段的验证

在使用 Laravel 进行验证期间检查输入中是不是存在字段