Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ```js
- const form = new Form({
- children: [
- {
- name: 'username',
- validate: validation(
- validation.required(),
- validation.async((value) =>
- mockServerCall(2000, () => value === 'john' ? 'username is taken' : null)))
- },
- {
- name: 'password',
- validate: validation(
- validation.required(),
- validation.async((value) =>
- mockServerCall(1000, value => value && value.length < 6 ? 'invalid password' : null)))
- }
- ]
- });
- const username = form.get('username');
- const password = form.get('password');
- username.onChange('john'); // initiates call 1 to the server
- console.log(username.hasErrors); // false
- console.log(username.errors); // null
- console.log(password.hasErrors); // false
- console.log(password.errors); // null
- console.log(form.hasErrors); // false
- console.log(form.errors); // null
- password.onChange('123'); // initiates call 2 to the server
- console.log(username.hasErrors); // false
- console.log(username.errors); // null
- console.log(password.hasErrors); // false
- console.log(password.errors); // null
- console.log(form.hasErrors); // false
- console.log(form.errors); // null
- // ... waiting asynchronously
- // a bit later, before responses 1 and 2 come from the server
- console.log(username.hasErrors); // false
- console.log(username.errors); // null
- console.log(password.hasErrors); // false
- console.log(password.errors); // null
- console.log(form.hasErrors); // false
- console.log(form.errors); // null
- // ... waiting asynchronously
- // later after reponse 2 comes from the server
- console.log(username.hasErrors); // false
- console.log(username.errors); // null
- console.log(password.hasErrors); // true
- console.log(password.errors); // ['invalid password']
- console.log(form.hasErrors); // true
- console.log(form.errors); // ['invalid password']
- // ... waiting asynchronously
- // later after reponse 1 comes from the server
- console.log(username.hasErrors); // true
- console.log(username.errors); // ['username is taken']
- console.log(password.hasErrors); // true
- console.log(password.errors); // ['invalid password']
- console.log(form.hasErrors); // true
- console.log(form.errors); // ['username is taken', 'invalid password']
- ```
Add Comment
Please, Sign In to add comment