`
balaschen
  • 浏览: 192216 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

自定义error_messages_for定制校验信息

    博客分类:
  • ror
阅读更多
ruby 代码
 
  1. module ApplicationHelper  
  2.   def error_messages_for(*params)  
  3.     options = params.last.is_a?(Hash) ? params.pop.symbolize_keys : {}  
  4.     objects = params.collect {|object_name| instance_variable_get("@#{object_name}") }.compact  
  5.     count   = objects.inject(0) {|sum, object| sum + object.errors.count }  
  6.     unless count.zero?  
  7.       html = {}  
  8.       [:id:class].each do |key|  
  9.         if options.include?(key)  
  10.           value = options[key]  
  11.           html[key] = value unless value.blank?  
  12.         else  
  13.           html[key] = 'errorExplanation'  
  14.         end  
  15.       end  
  16.       header_message = ""#"#{pluralize(count, 'error')} prohibited this #{(options[:object_name] || params.first).to_s.gsub('_', ' ')} from being saved"  
  17.       #error_messages = objects.map {|object| object.errors.full_messages.map {|msg| content_tag(:li, msg) } }  
  18.       error_messages = objects.map do |object|  
  19.         full_messages = []  
  20.         object.errors.each do |attr,msg|  
  21.           full_messages << msg unless msg.nil? || msg.blank?  
  22.         end  
  23.         full_messages.map{|msg| content_tag(:li,msg)}  
  24.       end  
  25.       content_tag(:div,  
  26.         content_tag(options[:header_tag] || :h2, header_message) <<  
  27.           content_tag(:p, '发生以下错误:') <<  
  28.           content_tag(:ul, error_messages),  
  29.         html  
  30.       )  
  31.     else  
  32.       ''  
  33.     end  
  34.   end  
  35. end  
分享到:
评论

相关推荐

    AngularJS Form 进阶:远程校验和自定义输入项

    通过在`ng-messages`元素中定义不同的消息,我们可以根据表单控件的`$error`属性显示相应的错误信息。 ```html &lt;div ng-messages="myForm.email.$error"&gt; 邮箱是必填的。 请输入有效的电子邮件地址。 ``` ...

    jquery validate 验证自定义样式

    6. **自定义提示样式**:如果想控制提示信息的样式,你可以创建一个自定义的`highlight`和`unhighlight`函数,分别处理元素在错误和正确状态下的样式: ```javascript highlight: function(element, errorClass, ...

    Jquery校验 (js+实例+帮助文档)

    使用`messages`选项可以自定义错误提示信息,如上述代码所示。 4. **提交处理:** 当表单验证失败时,可以通过`submitHandler`回调函数来阻止默认的提交行为: ```javascript $("#myForm").validate({ ...

    jQuery插件Validate实现自定义校验结果样式

    自定义提示信息是通过`messages`选项来指定的。开发者可以为不同的输入字段指定详细的验证消息。例如,对于用户名字段,如果输入为空,会提示“请输入姓名”;如果输入长度小于2个字符,则提示“请至少输入两个字符...

    struts2 表单验证验证信息显示位置及效果

    在资源文件(如Messages.properties)中,可以为每个错误代码定义不同的提示信息,并可以添加CSS类名来控制样式。例如,可以定义一个错误消息类`error`,并在CSS中设置其背景色、边框和字体颜色。 此外,Struts2的...

    jQuery的表单校验插件validate

    这个插件基于流行的JavaScript库jQuery构建,为开发者提供了丰富的选项和方法来定制表单验证规则,确保用户输入的数据符合预设的标准。 ### 一、jQuery validate 插件的基本使用 1. **安装与引入**:首先,你需要...

    jquery校验框架

    这里的`rules`对象定义了每个字段的验证规则,`messages`则定义了对应错误的提示信息。`errorPlacement`回调函数用于将错误消息插入到输入元素之后。 四、拓展与优化 - 集成其他验证插件:jQuery Validate还可以与...

    jQuery表单验证插件应用

    通过上述内容,我们可以看出jQuery表单验证插件不仅提供了丰富的基本校验功能,还支持高度定制化的扩展,如自定义错误信息展示、Ajax远程校验等。这使得它成为前端表单验证的理想选择之一。掌握这些技能能够帮助...

    ZendFramework中文文档

    13.8. 自定义Feed和条目类 14. Zend_Filter 14.1. 简介 14.1.1. 什么是过滤器(filter)? 14.1.2. 过滤器的基本用法 14.1.3. 使用静态 get() 方法 14.2. 标准过滤器类 14.2.1. Alnum 14.2.2. Alpha 14.2.3. ...

    Zend Framework校验器Zend_Validate用法详解

    当电子邮件地址格式不正确时,`isValid()` 返回 `false`,并且通过 `getMessages()` 和 `getErrors()` 可以获取到相应的错误信息。 **3. 验证器的内部机制** 在 `Zend_Validate_EmailAddress` 类的 `isValid()` ...

    PlayFramework框架验证.pdf

    例如,通过System.out.println(error.message())将错误信息输出到控制台或者展示给用户。 PlayFramework还允许开发者使用自定义验证规则来满足特定的数据校验需求。为了支持国际化的错误消息,PlayFramework遵循...

    django框架ModelForm组件用法详解

    5. 使用error_messages属性来为特定字段设置更人性化的错误提示信息。 6. 设置labels属性,可以为表单字段指定一个友好的显示名称。 7. 通过覆盖clean_字段名的方法,可以添加额外的字段校验逻辑。 8. 在视图(view...

    Django Form 组件

    `label`参数用于设置字段前的文本提示,`error_messages`则可以自定义错误信息。 在视图函数中,你需要处理用户的请求。如果请求方式是GET,那么创建一个Form实例并传入到模板中渲染。如果是POST请求,你需要调用`...

    springboot使用校验框架validation校验的示例

    在 resource 目录下,我们需要新建一个 ValidationMessages.properties 文件来存储错误信息。这个文件的编码必须为 ASCII,以便 Spring Boot 可以自动读取错误信息。 ```properties user.name.notBlank=名字不能为...

    AngularJs表单校验实例

    &lt;div ng-messages="myForm.username.$error" role="alert"&gt; 用户名是必填项。 请输入有效的电子邮件地址。 ``` ### 五、表单提交 只有当表单`$valid`时,用户才能提交表单。通过`ng-submit`指令可以指定表单...

    Struts的全局异常控制和common-validator校验框架

    在实际应用中,`common-validator`还允许你在XML配置文件(validator-rules.xml和messages.properties)中定义更复杂的验证规则,如日期格式、邮箱格式等,以及自定义的错误消息,这样可以使代码更加清晰,维护性更...

Global site tag (gtag.js) - Google Analytics