Advertisement
viligen

viewModel

Jun 13th, 2022
1,006
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Textbox {
  2.     constructor(selector, regex) {
  3.         this._value = '';
  4.         this._elements = document.querySelectorAll(selector);
  5.         this._invalidSymbols = regex;
  6.         Array.from(this._elements).forEach((el) =>
  7.             el.addEventListener('change', () => {
  8.                 this.value = el.value;
  9.             })
  10.         );
  11.     }
  12.  
  13.     get value() {
  14.         return this._value;
  15.     }
  16.  
  17.     set value(v) {
  18.         Array.from(this._elements).forEach((x) => (x.value = v));
  19.         this._value = v;
  20.     }
  21.  
  22.     get elements() {
  23.         return this._elements;
  24.     }
  25.  
  26.     isValid() {
  27.        
  28.         return !this._invalidSymbols.test(this.value);
  29.     }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement