diff --git a/API.md b/API.md
index 22272a0..d1e338d 100644
--- a/API.md
+++ b/API.md
@@ -120,7 +120,7 @@ Whenever the form becomes valid the "onValid" handler is called. Use it to chang
#### onInvalid()
```html
-
+
```
Whenever the form becomes invalid the "onInvalid" handler is called. Use it to for example revert "onValid" state.
diff --git a/src/Mixin.js b/src/Mixin.js
index dd886b0..12a2d8c 100644
--- a/src/Mixin.js
+++ b/src/Mixin.js
@@ -38,7 +38,8 @@ module.exports = {
_isPristine: true,
_pristineValue: this.props.value,
_validationError: '',
- _externalError: null
+ _externalError: null,
+ _formSubmitted: false
};
},
getDefaultProps: function () {
@@ -138,6 +139,9 @@ module.exports = {
isPristine: function () {
return this.state._isPristine;
},
+ isFormSubmitted: function () {
+ return this.state._formSubmitted;
+ },
isRequired: function () {
return !!this.props.required;
},
diff --git a/src/main.js b/src/main.js
index cd95804..f6208b7 100644
--- a/src/main.js
+++ b/src/main.js
@@ -74,6 +74,11 @@ Formsy.Form = React.createClass({
}.bind(this), 0);
},
+ resetForm: function () {
+ this.setFormPristine(true);
+ this.resetModel();
+ },
+
// Update model, submit to url prop and send the model
submit: function (event) {
@@ -190,11 +195,16 @@ Formsy.Form = React.createClass({
var inputs = this.inputs;
var inputKeys = Object.keys(inputs);
+ this.setState({
+ _formSubmitted: !isPristine
+ })
+
// Iterate through each component and set it as pristine
// or "dirty".
inputKeys.forEach(function (name, index) {
var component = inputs[name];
component.setState({
+ _formSubmitted: !isPristine,
_isPristine: isPristine
});
}.bind(this));
@@ -398,7 +408,7 @@ Formsy.Form = React.createClass({
return React.DOM.form({
onSubmit: this.submit,
- className: this.props.className
+ className: this.props.className
},
this.traverseChildrenAndRegisterInputs(this.props.children)
);