1.0.3 • Published 6 years ago

tuna-angular-unobtrusive-validation v1.0.3

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

README

MVC C# data annotations for angularjs. Replaces the need for jquery validation framework(s).

Goals:

  • Simple
  • Lightwight
  • Easily extendable

How to install

npm install tuna-angular-unobtrusive-validation --save

Usage

It is possible to configure the attribute name to match against (default for jquery-unobtrusive-validation is "val", that is what MVC will generate):

Tuna.ValidatorAttrName = "val";

The plugin has a global variable named Tuna.Validators, it contains two properties that can be configured.

  • Tuna.Validators.texts: containing texts for validators.
  • Tuna.Validators.rules: functions that validates input.

Existing validations:

  • regex: 'Invalid value',
  • date: 'Invalid date',
  • email: 'Invalid email',
  • range: 'Range must be between {0} and {1}',
  • digits: 'Only digits allowed',
  • number: 'Only numbers allowed',
  • required: 'Required field',
  • equalto: '{0} must match {1}'

Change default messages, globally

Tuna.Validators.texts["required"] = "override default custom text";

Change default messages, inline

<input type="input" data-val="true" data-val-required="will override default text" />

Change existing validation

Tuna.Validators.rules["required"] = function (scope, element, attrs) { 
  return function (modelValue, viewValue) { 
    return viewValue != ""; //true === is valid.
  }
};

Add custom validation

Tuna.Validators.texts["nozero"] = "zeros are not allowed!";
Tuna.Validators.rules["nozero"] = function (scope, element, attrs) {
  var regex = new RegExp(/^[0]$/);
  return function (modelValue, viewValue) {
    return !regex.test(viewValue || '');
  };
};

//add error callback
Tuna.ValidatorEvents.onElementError = function (ngModel, element, text) {
  alert(text);
 }
<input type="input" placeholder="no zeros" data-val="true" data-val-nozero />
<input type="input" placeholder="no zeros" data-val="true" data-val-nozero="override nozero text" />

How do I get set up? ###

  • to try, open index.html in demo page
  • to experment, run 0-install.bat then 1-build.bat
1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago