jQuery 验证和 laravel

Posted

技术标签:

【中文标题】jQuery 验证和 laravel【英文标题】:jQuery validation and laravel 【发布时间】:2018-03-12 06:38:25 【问题描述】:

我正在尝试将 jQuery validate 与 laravel 和 sentinel 一起使用,我需要返回 false 或 true,但 laravel 不能这样做,而是尝试使用文本和 JSON 进行响应。 控制器

$email = $request->except('_token');
$user_email = Sentinel::findByCredentials($email);
if($user_email!==null)
  return response('This email is already in use!',200)->header('dataType','text');

  return response(collect(["check"=>'ok'])->toJson(),200)->header('dataType','json')

即使响应头 dataType 文本 ajax 像 JSON 一样接受这个,但是如果我在 AJAX 中写 dataType : text 我只能接受文本,而 JSON 我会看到文本和验证仍然不起作用

email: 
  required: true,
  email: true,
  name: false,
  remote: 
    url: "/register/check",
    type: "post",
    headers: 
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    ,
    data: 
      username: function () 
        return $("input[name=email]").val();
      
    ,
    // dataType:'text'
  

【问题讨论】:

【参考方案1】:

已修复为添加 dataFilter,但我认为这仍然是一个糟糕的解决方案

email: 
            required: true,
            email: true,
            name: false,
            remote: 
                url: "/register/check",
                type: "post",
                headers: 
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                ,
                data: 
                    username: function () 
                        return $("input[name=email]").val();
                    
                ,
                dataFilter: function(data)
                    if(data=='"check":"ok"')
                        return JSON.parse(data);
                    return data;
                ,
                 dataType: 'text'
            
        ,

我正在寻找一些答案,例如“我如何在 laravel 上的控制器中返回 false 或 true”或“接受 AJAX 中的多个数据类型作为响应”

【讨论】:

以上是关于jQuery 验证和 laravel的主要内容,如果未能解决你的问题,请参考以下文章

jquery validate验证手机号码和座机号码

使用 jquery 验证和 jquery-ui datepicker

MVC jquery表单验证 和 jquery_Validate表单验证

具有多种形式的jQuery验证插件和模糊验证[重复]

使用 Jquery 和 Zend 进行表单验证

jquery表单验证on啥意思?