如何在必填和无效上显示不同的消息?

时间:2014-08-15 16:45:00

标签: javascript jquery angularjs validation angularjs-directive

请告诉我如何在需要和无效上显示不同的消息?换句话说。使用插件从json制作一个表单。在那里有一些必需的参数。有些我需要验证示例“Email”。当用户按“提交”按钮,如果用户没有填写该字段,则显示“此字段为必填项”。如果用户填写的值不是相同的值,则表示“无效值”。我们会根据不同的情况显示不同的消息。 / p>

我用过这个插件 https://github.com/Textalk/angular-schema-form/blob/master/docs/index.md#validation-messages 我做了这个傻瓜 http://plnkr.co/edit/ZNJO3x3IqajjdMNStJMF?p=preview

angular.module('test',['schemaForm']).controller('FormController', function($scope,$http){
   $scope.schema = {
    type: "object",
    properties: {
      name: { type: "string", minLength: 2, title: "Name", description: "Name or alias" ,required:true,"default": "dddd"},
      "student": { type: "string", title: "studentname", description: "Name or student" ,required:false},

      "email": {
      "title": "Email",
      "type": "string",
       "pattern":"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*",

      "description": "Email will be used for evil.",
      required:true
    },
      title: {
        type: "string",
        required:true,
        enum: ['dr','jr','sir','mrs','mr','NaN','dj'],

      }
    }
  };

  $scope.form = [
    "*",
    {
      type: "submit",
      title: "Save"
    }
  ];

2 个答案:

答案 0 :(得分:0)

您可以阅读official angular-schema-form documentation

  

默认情况下,所有错误消息都来自架构验证器tv4 ,这可能适用于您,也可能不适用。如果在表单定义中提供validationMessage属性,并且其值是一个字符串,将用于替代任何验证错误。

     

如果您需要更细粒度的控制,您可以使用与tv4的错误代码匹配的键来提供对象。请参阅tv4.errorCodes

     

实施例

{
  key: "address.street",
  validationMessage: {
    tv4.errorCodes.STRING_LENGTH_SHORT: "Address is too short, man.",
    "default": "Just write a proper address, will you?"   //Special catch all error message
  }
}
     

您还可以在formDefaults中设置全局validationMessage,请参阅全局选项。

因此,有关更多错误消息,请访问此link

答案 1 :(得分:0)

以下是一篇很棒的博客文章,可以回答您的问题:http://www.thebhwgroup.com/blog/2014/08/designing-html-forms-angularjs-part-1/

特别是,请查看第3部分“验证消息和样式”。

来自文章,

<span class="validation-message" ng-show="contactForm.firstName.$error.maxlength">Max length 20</span>

ng-form的名称为contactForm,有问题的元素名为firstName。这会将表单放在作用域上,然后您可以遍历该表单以获取错误,并专门针对每个错误显示错误消息。