Laravel, jQuery - 在 Laravel 中验证后返回括号表示法(jQuery 中的点到括号表示法)
Posted
技术标签:
【中文标题】Laravel, jQuery - 在 Laravel 中验证后返回括号表示法(jQuery 中的点到括号表示法)【英文标题】:Laravel, jQuery - return to bracket notation after validation in Laravel (dot to bracket notation in jQuery) 【发布时间】:2016-01-10 14:10:05 【问题描述】:使用 Laravel 5.1。
我有一个请求,我在其中进行表单输入验证。我调用.ajax
方法并接收JSON 输出。
类似:
"category.subcategory_one" : ["This field must be at least 3 characters long"],
"category.subcategory_two" : ["This field must be at least 5 characters long"],
...
但是经过验证的输入看起来像这样
<input name="category[subcategory_one]" >
<input name="category[subcategory_two]" >
但现在我无法将 CSS 类添加到未正确填充的输入中,因为在我的 jQuery 中我有点表示法。
有没有简单的方法将category.subcategory_one
转换为category[subcategory_one]
?
【问题讨论】:
【参考方案1】:需要将它们解析为name
格式
var errors =
"category.subcategory_one" : ["This field must be at least 3 characters long"],
"category.subcategory_two" : ["This field must be at least 5 characters long"],
...
$.each(errors, function key, value)
var name = key;
if(key.indexOf('.') >-1)
name = key.split('.').join('[') +']';
$('[name='+name+']').append( $('<span>',class:'error', text: value.join('<br>') )
);
【讨论】:
就可以了,感谢您的回答。但是,这不适用于category.subcategory.subsubcategory
的多个嵌套。我的代码中没有类似的东西,但我应该担心吗?
如果需要修改
是否可以执行key.split('.').join('][');
之类的操作,然后先删除]
,最后删除[
?如果是这样,你能给我提供那个代码吗?如果你不知道,我可以谷歌它。
如果拆分数组中有超过 2 个部分,则可能更好地计算部分并循环它们以创建字符串
另一件非常有用的事情是添加与名称段相同的类......然后只需添加一个点前缀来创建一个类选择器。【参考方案2】:
您需要对包含括号符号的选择器中的特殊字符进行转义。
if (key.indexOf('.') !== -1)
key = key.split('.').join('\\[') +'\\]';
【讨论】:
以上是关于Laravel, jQuery - 在 Laravel 中验证后返回括号表示法(jQuery 中的点到括号表示法)的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Orion 是不是适用于 Laravel 版本 6