Laravel 验证单个输入字段
Posted
技术标签:
【中文标题】Laravel 验证单个输入字段【英文标题】:Laravel validation for individual input fields 【发布时间】: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>
那我做错了什么?如果用户在姓氏的名字的输入中输入任何非字母的内容,我希望在我的刀片中显示错误。
【问题讨论】:
【参考方案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);
);
【讨论】:
以上是关于Laravel 验证单个输入字段的主要内容,如果未能解决你的问题,请参考以下文章