how to show different message on required and invalid?

余生颓废 提交于 2019-12-11 04:49:11

问题


can you please tell me how to show different message on required and invalid ?In other word .make a form from json using plugin .In that there are some required parameter .and some I need to validate example "Email".When user press "submit" button if user did not fill the field it show "this field is required" .and if user fill the value but not same patten than it say "invalid value".can we show different message as different situation .

i used this plugin https://github.com/Textalk/angular-schema-form/blob/master/docs/index.md#validation-messages and I make this plunker 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"
    }
  ];

回答1:


As you may read from the official angular-schema-form documentation

Per default all error messages comes from the schema validator tv4, this might or might not work for you. If you supply a validationMessage property in the form definition, and if its value is a string that will be used instead on any validation error.

If you need more fine grained control you can supply an object instead with keys matching the error codes of tv4. See tv4.errorCodes

Ex.

{
  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
  }
}

You can also set a global validationMessage in formDefaults see Global Options.

So for more error messages, visit this link




回答2:


Here is a great blog article that should answer your question: http://www.thebhwgroup.com/blog/2014/08/designing-html-forms-angularjs-part-1/

In particular, check out part 3 "Validation Messages and Styling".

From the article,

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

Where the ng-form is named contactForm and the element in question is named firstName. This puts the form on the scope and you can then traverse that to get the errors, and show an error message specifically for each error.



来源:https://stackoverflow.com/questions/25330571/how-to-show-different-message-on-required-and-invalid

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!