我尝试使用 jQuery 自动显示 Laravel 5.5 Ajax 错误验证,
当对于单个字段有效时,使用以下代码:
$.each(response.errors, function (key, value) {
el.find('input[name="'+key+'"] , select[name="'+key+'"] , textarea[name="'+key+'"]').parent().append('<div class="error right-align pink-text text-mute">'+value+'</div>');
});
上面的代码将根据选择器向每个元素附加一条错误消息。
但是如果我使用数组字段,例如 <input type="text" name="start_date[]" />
然后我得到以下错误验证:
{"message":"The given data was invalid.","errors":{"start_date.0":["The start_date.0 field is required when availability is 0."],"start_date.1":["The start_date.1 field is required."],"end_date.0":["The end_date.0 field is required."],"end_date.1":["The end_date.1 field is required."]}}
所以我的 JavaScript 找不到元素 start_date.0
如何使用 jQuery 和该响应来选择元素? (开始日期.0,开始日期.1)
最佳答案
感谢大家的回答,我通过使用 id 属性结束了这个问题,所以我的 html 标签应该是这样的 <input type="text" id="start_date.0" name="start_date[]" />
因为 jquery 不允许使用点“.”选择器中的模式,我的选择器应该是这样的
el.find('input[id="select_date.0"]')
所以我的代码应该是:
$.each(response.errors, function (key, value) {
el.find('input[id="'+key+'"],input[name="'+key+'"] , select[name="'+key+'"] , textarea[name="'+key+'"]').parent().append('<div class="error right-align pink-text text-mute">'+value+'</div>');
});
关于javascript - Laravel 数组的 Jquery 选择器验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46864251/