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

在 laravel 5.2 中找不到类“Html”

Laravel 核心--Facades 门面

Laravel - 如何在忘记密码中添加自定义字段

如何在子目录 Laravel 中正确配置 htaccess?

Laravel删除不起作用