Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. // error elements
  2. var error = document.querySelector('.review-fields');
  3. var errorName = error.querySelector('.review-fields-name');
  4. var errorText = error.querySelector('.review-fields-text');
  5.  
  6. // form elements
  7. var form = document.querySelector('.review-form');
  8. var marks = form.elements['review-mark'];
  9. var name = form.elements['review-name'];
  10. var text = form.elements['review-text'];
  11.  
  12. // validation state
  13. var hasBadMark = false;
  14. var hasNameError = false;
  15. var hasTextError = false;
  16.  
  17. /**
  18. * Updates variables, which represent validation state
  19. */
  20. function validate() {
  21. hasBadMark = marks.value < 4;
  22. hasNameError = !name.value;
  23. hasTextError = hasBadMark && !text.value;
  24. }
  25.  
  26. /**
  27. * Toggles invisible class for given element
  28. * @param {Element} el
  29. * @param {boolean} enable
  30. */
  31. function setElementShown(el, enable) {
  32. if (enable) {
  33. el.classList.add('invisible');
  34. } else {
  35. el.classList.remove('invisible');
  36. }
  37. }
  38.  
  39. /**
  40. * Handles all form changes
  41. * @param {Event} evt
  42. */
  43. function changeHandler(evt) {
  44. validate();
  45. text.required = hasBadMark;
  46. setElementShown(errorName, hasNameError);
  47. setElementShown(errorText, hasTextError);
  48. setElementShown(error, !hasNameError && !hasTextError);
  49. }
  50.  
  51. from.addEventListener('change', changeHandler);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement