【问题标题】:Laravel validation for individual input fieldsLaravel 验证单个输入字段
【发布时间】:2017-11-09 06:03:48
【问题描述】:

我在我的 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 代表名字,lname 代表姓氏

在我的 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);
              }
          });
      }

在我的路由文件中,这调用了我的 store 函数。我正在努力解决的是如何验证用户输入的值。这是我的控制器中的存储方法

 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>

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

【问题讨论】:

    标签: jquery ajax laravel validation


    【解决方案1】:

    每次加载页面时服务器都会生成刀片语法,当您以 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);
              });
          }
    

    【讨论】:

      猜你喜欢
      • 2016-07-15
      • 2015-04-29
      • 2011-04-17
      • 1970-01-01
      • 2023-03-14
      • 2013-05-02
      • 2021-08-13
      • 2015-03-14
      • 1970-01-01
      相关资源
      最近更新 更多