{{ Form::open([
'url' => '/contacts/create',
'files' => true
])}}
<div class="row">
<div class="collapse" id="collapseExample">
<div class="col-md-9">
{{ Form::label('group', 'group name')}}
{{ Form::text('group', null, [
'placeholder' => 'Enter group name here',
'class' => 'form-control'
])}}
</div>
<div class="col-md-3">
<button id="add-new-btn" class="btn btn-success"><i class="pe-7s-add-user"></i> Add</button>
</div>
</div>
</div>
{{ Form::close() }}
在我的视图中,我有脚本
$("#add-new-btn").click(function(e) {
e.preventDefault();
e.stopImmediatePropagation();
var newGroup = $('#group');
$.ajax({
url: "/groups/autocomplete",
method: "post",
data: {
name: $("#group").val(),
_token: $("input[name=_token]").val()
},
success: function(response) {
console.log(response);
},
error: function(xhr) {
var errors = xhr.responseJSON;
var error = errors.name[0];
if(error) {
newGroup.addClass('has-error');
var inputGroup = newGroup.closest('.col-md-9');
inputGroup.next('text-danger').remove();
inputGroup
.find('input')
.after('<p class="text-danger">' + error + '</p>');
}
}
});
});
并且在GroupsController的store方法中我有一个简单的Validator,可以返回这两个值: 1.名称字段是必需的 这个名字已经被采取
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|unique:groups'
]);
}
现在的问题是: 每次我尝试提交表单时,浏览器都会返回此错误&#34; errors.name is undefined&#34;在控制台中。
问题在哪里?答案 0 :(得分:0)
我在访问对象的属性时遇到了错误, jsonData.errors
var data = xhr.responseText;
var jsonData = JSON.parse(data);
var msg = jsonData.errors.name[0];
console.log(msg);
或
var jsonData = xhr.responseJSON;
var msg = jsonData.errors.name[0];
console.log(msg);