Comparing version 0.0.24 to 0.0.25
@@ -120,11 +120,21 @@ 'use strict'; | ||
formItemsValues[itemName] = item.value; | ||
var validationsLength = item.validations.length; | ||
var validated = 0; | ||
item.validations.map(function (validation) { | ||
for (var i = 0; i < validationsLength; i++) { | ||
var validation = item.validations[i]; | ||
var validate = _validator2.default[validation.rule](item.value, validation.args); | ||
if (validate) howManyOfFormItemsAreValidated++; | ||
if (validate) { | ||
validated++; | ||
howManyOfFormItemsAreValidated++; | ||
} | ||
item.invalidFeedback = validation.invalidFeedback; | ||
item.className = validate ? '' : ' ' + _this2.state.classNames.invalidInput; | ||
}); | ||
item.className = validationsLength === validated ? '' : ' ' + _this2.state.classNames.invalidInput; | ||
if (!validate) { | ||
item.invalidFeedback = validation.invalidFeedback; | ||
continue; | ||
} | ||
} | ||
}); | ||
@@ -131,0 +141,0 @@ |
@@ -27,2 +27,14 @@ import React from 'react' | ||
], | ||
number: [ | ||
{ | ||
rule: 'isInt', | ||
args: { gt: 10, lt: 100 }, | ||
invalidFeedback: 'please provide a number between 10-100' | ||
}, | ||
{ | ||
rule: 'isLength', | ||
args: { min: 1 }, | ||
invalidFeedback: 'please provide at least one character' | ||
} | ||
], | ||
message: [ | ||
@@ -114,2 +126,11 @@ { | ||
<div> | ||
<Input | ||
type='number' | ||
name='number' | ||
placeholder='number' | ||
validations={validations.number} | ||
/> | ||
</div> | ||
<div> | ||
<Textarea | ||
@@ -116,0 +137,0 @@ name='message' |
{ | ||
"name": "recassfov", | ||
"version": "0.0.24", | ||
"version": "0.0.25", | ||
"description": "React client and server side form validation", | ||
@@ -20,3 +20,3 @@ "main": "./build/Recassfov.js", | ||
"scripts": { | ||
"start": "parcel ./example/index.html --out-dir ./dist --public-url / --port 1111", | ||
"start": "parcel ./example/index.html --out-dir ./dist --public-url / --port 1120", | ||
"build": "npm run build-1 && npm run build-2", | ||
@@ -23,0 +23,0 @@ "build-1": "babel --plugins transform-react-jsx ./src/Recassfov.jsx > ./build/Recassfov.js", |
@@ -86,11 +86,21 @@ import React from 'react' | ||
formItemsValues[itemName] = item.value | ||
const validationsLength = item.validations.length | ||
let validated = 0 | ||
item.validations.map((validation) => { | ||
for (let i = 0; i < validationsLength; i++) { | ||
const validation = item.validations[i] | ||
const validate = validator[validation.rule](item.value, validation.args) | ||
if (validate) howManyOfFormItemsAreValidated++ | ||
if (validate) { | ||
validated++ | ||
howManyOfFormItemsAreValidated++ | ||
} | ||
item.invalidFeedback = validation.invalidFeedback | ||
item.className = validate ? '' : ` ${this.state.classNames.invalidInput}` | ||
}) | ||
item.className = validationsLength === validated ? '' : ` ${this.state.classNames.invalidInput}` | ||
if (!validate) { | ||
item.invalidFeedback = validation.invalidFeedback | ||
continue | ||
} | ||
} | ||
}) | ||
@@ -97,0 +107,0 @@ |
171466
784