【问题标题】:Special effect on parsley min check error message, Rails 4对 parsley min 检查错误消息的特殊效果,Rails 4
【发布时间】:2015-05-26 00:35:26
【问题描述】:

我正在创建带有注册的简单应用程序,它包含多种字段类型 - 字符串、文本、复选框等。

我添加了parsley 以显示错误(如果有)。这很好用。 但是现在我想在发生错误时更改标题的颜色 - 特别是当 parsley-min-check 触发它时。

我的代码:

<div class="col-lg-3"> 
    Services
    <hr>          
  <div class="services-heading">  (Minimum*3)  </div>

    <div class="services-reg">

     <% @services.each do |service| %>
       <li>

            <%= check_box_tag 'service_ids[]', service.id, false, :'data-parsley-mincheck'=>3,:required => true%>
         <%= h service.name%>                       
       </li>               


     <% end %>
   </div>

 </div>

现在我正在尝试在所需的 div (services-reg) 包含欧芹错误消息时触发脚本。

 $(document).ready(function() {
    if ( $( ".services-reg  > li.parsley-error").length ) {

        $(".services-heading > p").css("color", "red");
    }   
 });

但有些事情没有按预期工作。 控制台不显示任何错误消息。

提前感谢您的宝贵时间。

【问题讨论】:

    标签: javascript ruby-on-rails parsley.js


    【解决方案1】:

    您正在检查.services-reg 是否在您的文档上准备好了li.parsley-error。此时,您尚未执行任何验证。

    您可能可以利用Parsley's events,例如parsley:form:error。因此,您可以收听该事件,该事件在出现验证错误时触发。

    $(document).ready(function() {
        // when there's a validation error
        $.listen('parsley:form:error', function(ParsleyForm) {
            $(".services-heading > p").css("color", "red");
        });
    });
    

    检查此jsfiddle demo,当正确验证表单时,我还使用parsley:form:success 去除红色。


    更新:如果您有包含几个字段的 div 组,并且您想要更改正确 div 的颜色,您可以使用事件 parsley:field:errorparsley:field:success。 p>

    例子:

    $.listen('parsley:field:error', function(ParsleyField) {
        var pElement = ParsleyField.$element.parent('div').prev().find('p');
        pElement.css("color", "red");
    });
    

    在这里,我根据 jQuery 元素为有错误的输入找到正确的 div。您可能需要根据表单的 DOM 进行调整。

    看看这个working jsfiddle

    【讨论】:

    • 谢谢,但我的想法是如果确切的 div 包含任何 parlsey 错误,则更改标题颜色。在这种情况下,服务注册。有没有办法将 Parsley 事件指向特定的 div ?再次感谢
    • @EdgarsRozenfelds 看看更新的答案。您可以使用特定于字段的事件,然后您需要找到正确的 div。由于您尚未发布表单的结构,因此我已经“猜测”了一下,您的结构可能会有所不同。如果您有任何问题,请编辑您的问题并添加表单结构。
    • 谢谢,有些东西还是不行。现在,当 Parsley 错误发生时,我没有得到任何改变。还添加了我的表单的一些结构。
    • @EdgarsRozenfelds 如果您可以将解析后的 H​​TML 添加到您的问题中(即被 rails 解析后的 DOM - 您在“查看页面源代码”中看到的内容),可能会更容易。我只看到了services-regservices-heading 的div,我相信你可能有更多的div。还包括表单的开始和结束标记。谢谢。
    • 谢谢。但是字符限制不允许添加所有 div 的完整形式。有没有其他方法可以针对 Parsley 事件定位特定的 div。?
    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2023-03-26
    • 2014-02-18
    相关资源
    最近更新 更多