index.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* */
  2. function Password(parent, open) {
  3. let value = ''
  4. let pass = document.createElement('input')
  5. let check = document.createElement('input')
  6. check.type = 'checkbox'
  7. parent.append(pass, check)
  8. check.onchange = () => {
  9. this.setOpen(check.checked)
  10. }
  11. //добавить pass oninput, который из pass забирает value, запускает setValue
  12. this.getValue = function () {
  13. return value
  14. }
  15. this.setValue = function(value) {
  16. // передает value в onchange если он есть
  17. }
  18. this.getOpen = function () {
  19. return open
  20. }
  21. this.setOpen = function(newOpen) {
  22. open = newOpen
  23. pass.type = open ? 'text' : 'password'
  24. check.checked = open
  25. if(typeof this.onOpenChange === 'function') {
  26. this.onOpenChange(open)
  27. }
  28. }
  29. this.setOpen(open)
  30. }
  31. let p = new Password(document.body, true)
  32. p.onChange = data => console.log(data)
  33. p.onOpenChange = open => console.log(open)
  34. p.setValue('qwerty')
  35. console.log(p.getValue())
  36. p.setOpen(false)
  37. console.log(p.getOpen())