123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008 |
- // passwordWrapp()
- function passwordWrapp() {
- // в классе ниже коллбэки расположены в ивентлистенерах, что неправильно,
- // их нужно размещать в сеттерах, а в ивентлистеннерах вызывать сеттеры
- // function Password(parent=document.body, open=false) {
- // const passField = document.createElement('input')
- // const checkBox = document.createElement('input')
- // checkBox.type = 'checkbox'
- // parent.append(passField)
- // parent.append(checkBox)
- // this.setValue = (newValue) => {
- // passField.value = newValue
- // }
- // this.getValue = () => passField.value
- // this.setOpen = (newOpen) => {
- // open = newOpen
- // if (open === true) {
- // checkBox.checked = true
- // passField.type = 'text'
- // } else if (open === false) {
- // checkBox.checked = false
- // passField.type = 'password'
- // }
- // }
- // this.setOpen(open)
- // this.getOpen = () => checkBox.checked
- // passField.oninput = () => {
- // if (typeof this.onChange === 'function') {
- // this.onChange(this.getValue())
- // }
- // }
- // checkBox.oninput = () => {
- // if (this.getOpen() === true) {
- // this.setOpen(true)
- // } else {
- // this.setOpen(false)
- // }
- // if (typeof this.onOpenChange === 'function') {
- // this.onOpenChange(this.getOpen())
- // }
- // }
- // }
- // здесь коллбэки расположены правильно
- function Password(parent=document.body, open=false) {
- const passField = document.createElement('input')
- const checkBox = document.createElement('input')
- checkBox.type = 'checkbox'
- parent.append(passField)
- parent.append(checkBox)
- this.setValue = (newValue) => {
- passField.value = newValue
- if (typeof this.onChange === 'function') {
- this.onChange(newValue)
- }
- }
- this.getValue = () => passField.value
- this.setOpen = (newOpen) => {
- open = newOpen
-
- if (open === true) {
- checkBox.checked = true
- passField.type = 'text'
- } else if (open === false) {
- checkBox.checked = false
- passField.type = 'password'
- }
- if (typeof this.onOpenChange === 'function') {
- this.onOpenChange(open)
- }
- }
- this.setOpen(open)
- this.getOpen = () => checkBox.checked
- passField.oninput = () => {
- this.setValue(this.getValue())
- }
- checkBox.oninput = () => {
- if (this.getOpen() === true) {
- this.setOpen(true)
- } else {
- this.setOpen(false)
- }
- }
- }
- let p = new Password(document.body, true)
- p.onChange = data => console.log(data)
- p.onOpenChange = open => console.log(open)
- // p.setValue('qwerty')
- // console.log(p.getValue())
- // p.setOpen(false)
- // console.log(p.getOpen())
- }
- // loginFormWrapp()
- function loginFormWrapp() {
- function Password(parent=document.body, open=false) {
- const passField = document.createElement('input')
- const checkBox = document.createElement('input')
- checkBox.type = 'checkbox'
- parent.append(passField)
- parent.append(checkBox)
- this.setValue = (newValue) => {
- passField.value = newValue
- if (typeof this.onChange === 'function') {
- this.onChange(newValue)
- }
- }
- this.getValue = () => passField.value
- this.setOpen = (newOpen) => {
- open = newOpen
-
- if (open === true) {
- checkBox.checked = true
- passField.type = 'text'
- } else if (open === false) {
- checkBox.checked = false
- passField.type = 'password'
- }
- if (typeof this.onOpenChange === 'function') {
- this.onOpenChange(open)
- }
- }
- this.setOpen(open)
- this.getOpen = () => checkBox.checked
- passField.oninput = () => {
- this.setValue(this.getValue())
- }
- checkBox.oninput = () => {
- if (this.getOpen() === true) {
- this.setOpen(true)
- } else {
- this.setOpen(false)
- }
- }
- }
- let loginInput = document.createElement('input')
- formContainer.append(loginInput)
- let passwordInput = new Password(formContainer, false)
- let loginButton = document.createElement('button')
- loginButton.innerText = 'Подтвердить'
- loginButton.disabled = true
- formContainer.append(loginButton)
- function changeBtnStatus() {
- if (loginInput.value && passwordInput.getValue()) {
- loginButton.disabled = false
- } else {
- loginButton.disabled = true
- }
- }
- passwordInput.onChange = changeBtnStatus
- loginInput.oninput = changeBtnStatus
- }
- // loginFormConstructorWrapp()
- function loginFormConstructorWrapp() {
- function Password(parent=document.body, open=false) {
- const passField = document.createElement('input')
- const checkBox = document.createElement('input')
- checkBox.type = 'checkbox'
- parent.append(passField)
- parent.append(checkBox)
- this.setValue = (newValue) => {
- passField.value = newValue
- if (typeof this.onChange === 'function') {
- this.onChange(newValue)
- }
- }
- this.getValue = () => passField.value
- this.setOpen = (newOpen) => {
- open = newOpen
-
- if (open === true) {
- checkBox.checked = true
- passField.type = 'text'
- } else if (open === false) {
- checkBox.checked = false
- passField.type = 'password'
- }
- if (typeof this.onOpenChange === 'function') {
- this.onOpenChange(open)
- }
- }
- this.setOpen(open)
- this.getOpen = () => checkBox.checked
- passField.oninput = () => {
- this.setValue(this.getValue())
- }
- checkBox.oninput = () => {
- if (this.getOpen() === true) {
- this.setOpen(true)
- } else {
- this.setOpen(false)
- }
- }
- }
- function LoginForm(parent=document.body, open=false) {
- // let currThis = this
- const loginField = document.createElement('input')
- loginField.type = 'text'
- const button = document.createElement('button')
- button.innerText = 'Подтвердить'
- parent.append(loginField)
- let passField = new Password(parent, open)
- parent.append(button)
- this.setLoginValue = (newValue) => {
- loginField.value = newValue
- this.makeCallback(this.onLoginChange, newValue)
- }
- this.getLoginValue = () => loginField.value
- let btnState = true
- this.setBtn = (newValue=btnState) => {
- btnState = newValue
- if (this.getLoginValue() && passField.getValue()) {
- btnState = false
- } else {
- btnState = true
- }
- button.disabled = btnState
- }
- this.setBtn()
- this.getBtn = () => button.disabled
- this.makeCallback = (name, content) => {
- if (typeof name === 'function') {
- name(content)
- }
- }
- loginField.oninput = () => {
- this.setBtn()
- this.setLoginValue(this.getLoginValue())
- }
- passField.onChange = () => {
- this.setBtn()
- }
- button.onclick = () => {
- this.makeCallback(this.onBtnClick, 'click')
- }
- }
- let loginForm = new LoginForm(document.body)
- loginForm.onLoginChange = (data) => console.log(data)
- loginForm.onBtnClick = (data) => console.log(data)
- }
- passwordVerifyWrapp()
- function passwordVerifyWrapp() {
- function Password(parent=document.body, open=false) {
- const passField = document.createElement('input')
- const checkBox = document.createElement('input')
- checkBox.type = 'checkbox'
- parent.append(passField)
- parent.append(checkBox)
- this.setValue = (newValue) => {
- passField.value = newValue
- if (typeof this.onChange === 'function') {
- this.onChange(newValue)
- }
- }
- this.getValue = () => passField.value
- this.setOpen = (newOpen) => {
- open = newOpen
-
- if (open === true) {
- checkBox.checked = true
- passField.type = 'text'
- } else if (open === false) {
- checkBox.checked = false
- passField.type = 'password'
- }
- if (typeof this.onOpenChange === 'function') {
- this.onOpenChange(open)
- }
- }
- this.setOpen(open)
- this.getOpen = () => checkBox.checked
- passField.oninput = () => {
- this.setValue(this.getValue())
- }
- checkBox.oninput = () => {
- if (this.getOpen() === true) {
- this.setOpen(true)
- } else {
- this.setOpen(false)
- }
- }
- }
- function RegForm(parent=document.body, open=false) {
- const loginField = document.createElement('input')
- loginField.type = 'text'
- const passField2 = document.createElement('input')
- passField2.type = 'password'
- const button = document.createElement('button')
- button.innerText = 'Подтвердить'
- parent.append(loginField)
- parent.append(passField2)
- let passField = new Password(parent, open)
- parent.append(button)
- this.setLoginValue = (newValue) => {
- loginField.value = newValue
- this.makeCallback(this.onLoginChange, newValue)
- }
- this.getLoginValue = () => loginField.value
- this.setPassValue2 = (newValue) => {
- passField2.value = newValue
- this.makeCallback(this.onPass2Change, newValue)
- if (passField.getOpen()) {
- passField2.style.display = 'none'
- } else {
- passField2.style.display = 'inline'
- }
- }
- this.getPassValue2 = () => passField2.value
- this.setPassState2 = (state=open) => {
- if (state) {
- passField2.style.display = 'none'
- } else {
- passField2.style.display = 'inline'
- }
- }
- this.getPassState2 = () => {
- if (passField2.style.display = 'none') {
- return true
- } else {
- return false
- }
- }
- let btnState = true
- this.setBtn = (newValue=btnState) => {
- btnState = newValue
- if (passField.getOpen() ? this.getLoginValue() && passField.getValue() :
- this.getLoginValue() && passField.getValue() && passField.getValue() === this.getPassValue2()) {
- btnState = false
- } else {
- btnState = true
- }
- button.disabled = btnState
- }
- this.setBtn()
- this.getBtn = () => button.disabled
- this.makeCallback = (name, content) => {
- if (typeof name === 'function') {
- name(content)
- }
- }
- loginField.oninput = () => {
- this.setBtn()
- this.setLoginValue(this.getLoginValue())
- }
- passField.onChange = () => {
- this.setBtn()
- }
- passField.onOpenChange = () => {
- this.setPassValue2(this.getPassValue2())
- this.setBtn()
- }
- passField2.oninput = () => {
- this.setBtn()
- this.setPassState2(passField.getOpen())
- }
- button.onclick = () => {
- this.makeCallback(this.onBtnClick, 'click')
- }
- }
- let regForm = new RegForm()
- }
- // В коде ниже не используется класс Password, все написано общими классами
- // loginFormWrapp2()
- // function loginFormWrapp2() {
- // function LoginForm(parent=document.body, open=false) {
- // const loginField = document.createElement('input')
- // loginField.type = 'text'
- // const passField = document.createElement('input')
- // const checkBox = document.createElement('input')
- // checkBox.type = 'checkbox'
- // const button = document.createElement('button')
- // button.innerText = 'Подтвердить'
- // button.disabled = true
- // parent.append(loginField)
- // parent.append(passField)
- // parent.append(checkBox)
- // parent.append(button)
- // this.setLoginValue = (newValue) => {
- // loginField.value = newValue
- // }
- // this.getLoginValue = () => loginField.value
- // this.setPassValue = (newValue) => {
- // passField.value = newValue
- // }
- // this.getPassValue = () => passField.value
- // this.setOpen = (newOpen) => {
- // open = newOpen
- // if (open === true) {
- // checkBox.checked = true
- // passField.type = 'text'
- // } else if (open === false) {
- // checkBox.checked = false
- // passField.type = 'password'
- // }
- // }
- // this.setOpen(open)
- // this.getOpen = () => checkBox.checked
- // loginField.oninput = () => {
- // if (this.getLoginValue() && this.getPassValue()) {
- // button.disabled = false
- // } else {
- // button.disabled = true
- // }
- // if (typeof this.onLoginChange === 'function') {
- // this.onLoginChange(this.getLoginValue())
- // }
- // }
- // passField.oninput = () => {
- // if (this.getLoginValue() && this.getPassValue()) {
- // button.disabled = false
- // } else {
- // button.disabled = true
- // }
- // if (typeof this.onPassChange === 'function') {
- // this.onPassChange(this.getPassValue())
- // }
- // }
- // checkBox.oninput = () => {
- // if (this.getOpen() === true) {
- // this.setOpen(true)
- // } else {
- // this.setOpen(false)
- // }
- // if (typeof this.onOpenChange === 'function') {
- // this.onOpenChange(this.getOpen())
- // }
- // }
- // }
- // let loginForm = new LoginForm(document.body)
- // }
- // loginFormConstructorWrapp2()
- // function loginFormConstructorWrapp2() {
- // function LoginForm(parent=document.body, open=false) {
- // const loginField = document.createElement('input')
- // loginField.type = 'text'
- // const passField = document.createElement('input')
- // const checkBox = document.createElement('input')
- // checkBox.type = 'checkbox'
- // const button = document.createElement('button')
- // button.innerText = 'Подтвердить'
- // parent.append(loginField)
- // parent.append(passField)
- // parent.append(checkBox)
- // parent.append(button)
- // this.setLoginValue = (newValue) => {
- // loginField.value = newValue
- // }
- // this.getLoginValue = () => loginField.value
- // this.setPassValue = (newValue) => {
- // passField.value = newValue
- // }
- // this.getPassValue = () => passField.value
- // this.setOpen = (newOpen) => {
- // open = newOpen
- // if (open === true) {
- // checkBox.checked = true
- // passField.type = 'text'
- // } else if (open === false) {
- // checkBox.checked = false
- // passField.type = 'password'
- // }
- // }
- // this.setOpen(open)
- // this.getOpen = () => checkBox.checked
- // let btnState = true
- // this.setBtn = (newValue=btnState) => {
- // btnState = newValue
- // if (this.getLoginValue() && this.getPassValue()) {
- // btnState = false
- // } else {
- // btnState = true
- // }
- // button.disabled = btnState
- // }
- // this.setBtn()
- // this.getBtn = () => button.disabled
- // this.makeCallback = (name, content) => {
- // if (typeof name === 'function') {
- // name(content)
- // }
- // }
- // loginField.oninput = () => {
- // this.setBtn()
- // this.makeCallback(this.onLoginChange, this.getLoginValue())
- // }
- // passField.oninput = () => {
- // this.setBtn()
- // this.makeCallback(this.onPassChange, this.getPassValue())
- // }
- // checkBox.oninput = () => {
- // if (this.getOpen() === true) {
- // this.setOpen(true)
- // } else {
- // this.setOpen(false)
- // }
- // this.setBtn()
- // this.makeCallback(this.onOpenChange, this.getOpen())
- // }
- // button.onclick = () => {
- // this.makeCallback(this.onBtnClick, 'click')
- // }
- // }
- // let loginForm = new LoginForm(document.body)
- // loginForm.onLoginChange = data => console.log(data)
- // loginForm.onPassChange = data => console.log(data)
- // loginForm.onBtnClick = click => console.log(click)
- // }
- // passwordVerifyWrapp2()
- // function passwordVerifyWrapp2() {
- // function LoginForm(parent=document.body, open=false) {
- // const loginField = document.createElement('input')
- // loginField.type = 'text'
- // const passField = document.createElement('input')
- // const passField2 = document.createElement('input')
- // const checkBox = document.createElement('input')
- // checkBox.type = 'checkbox'
- // const button = document.createElement('button')
- // button.innerText = 'Подтвердить'
- // parent.append(loginField)
- // parent.append(passField)
- // parent.append(passField2)
- // parent.append(checkBox)
- // parent.append(button)
- // this.setLoginValue = (newValue) => {
- // loginField.value = newValue
- // }
- // this.getLoginValue = () => loginField.value
- // this.setPassValue = (newValue) => {
- // passField.value = newValue
- // }
- // this.getPassValue = () => passField.value
- // this.setPassValue2 = (newValue) => {
- // passField2.value = newValue
- // }
- // this.getPassValue2 = () => passField2.value
- // this.setOpen = (newOpen) => {
- // open = newOpen
- // checkBox.checked = open
- // if (open === true) {
- // passField.type = 'text'
- // passField2.style.display = 'none'
- // } else if (open === false) {
- // passField.type = 'password'
- // passField2.style.display = 'inline'
- // passField2.type = 'password'
- // }
- // }
- // this.setOpen(open)
- // this.getOpen = () => checkBox.checked
- // let btnState = true
- // this.setBtn = (newValue=btnState) => {
- // btnState = newValue
- // if (this.getOpen() ? this.getLoginValue() && this.getPassValue() :
- // this.getLoginValue() && this.getPassValue() && this.getPassValue() === this.getPassValue2()) {
- // btnState = false
- // } else {
- // btnState = true
- // }
- // button.disabled = btnState
- // }
- // this.setBtn()
- // this.getBtn = () => button.disabled
- // this.makeCallback = (name, content) => {
- // if (typeof name === 'function') {
- // name(content)
- // }
- // }
- // loginField.oninput = () => {
- // this.setBtn()
- // this.makeCallback(this.onLoginChange, this.getLoginValue())
- // }
- // passField.oninput = () => {
- // this.setBtn()
- // this.makeCallback(this.onPassChange, this.getPassValue())
- // }
- // passField2.oninput = () => {
- // this.setBtn()
- // this.makeCallback(this.onPass2Change, this.getPassValue2())
- // }
- // checkBox.oninput = () => {
- // if (this.getOpen() === true) {
- // this.setOpen(true)
- // } else {
- // this.setOpen(false)
- // }
- // this.setBtn()
- // this.makeCallback(this.onOpenChange, this.getOpen())
- // }
- // button.onclick = () => {
- // this.makeCallback(this.onBtnClick, 'click')
- // }
- // }
- // let loginForm = new LoginForm()
- // }
- // formWrapp()
- function formWrapp() {
- function Form(el, data, okCallback, cancelCallback){
- let formBody = document.createElement('div')
- let okButton = document.createElement('button')
- okButton.innerHTML = 'OK'
-
- let cancelButton = document.createElement('button')
- cancelButton.innerHTML = 'Cancel'
-
- formBody.innerHTML = '<h1>Форма</h1>'
- const table = document.createElement('table')
- formBody.append(table)
- let callBackValidator = {}
- let checkObj = (obj) => {
- for (let key in obj) {
- if (obj[key] === false) {
- return true
- }
- }
- return false
- }
- if (typeof okCallback === 'function'){
- formBody.appendChild(okButton)
- okButton.onclick = () => {
- // ??
- // console.log(this)
- this.okCallback(data)
- }
- }
-
- if (typeof cancelCallback === 'function'){
- formBody.appendChild(cancelButton)
- cancelButton.onclick = () => {
- table.innerHTML = ''
- createTable(this.dataBackup)
- this.cancelCallback()
- }
- }
-
- let inputCreators = {
- String(key, value, oninput){
- let input = document.createElement('input')
- // console.log(value.match(/\**/)[0])
- if (value.match(/\**/)[0] === value && value !== '') {
- input.type = 'password'
- input.value = ''
- input.oninput = () => oninput(input.value)
- setTimeout(() => {
- oninput(input.value)
- }, 0)
- } else {
- input.type = 'text'
- input.placeholder = key
- input.value = value
- input.oninput = () => oninput(input.value)
- setTimeout(() => {
- oninput(input.value)
- }, 0)
- }
- return input
- },
- Boolean(key, value, oninput){
- let input = document.createElement('input')
- input.type = 'checkbox'
- input.checked = value
- input.oninput = () => oninput(input.checked)
- setTimeout(() => {
- oninput(input.checked)
- }, 0)
- return input
- },
- Date(key, value, oninput){
- let input = document.createElement('input')
- input.type = 'datetime-local'
- // при преобразовании объекта к строке смещается часовой пояс на нулевой, выражение ниже восстанавливает текущий
- input.value = new Date(value - (new Date()).getTimezoneOffset() * 60 * 1000).toISOString().slice(0,-1)
- input.oninput = () => oninput(new Date(input.value))
- setTimeout(() => {
- oninput(new Date(input.value))
- }, 0)
- return input
- },
- Number(key, value, oninput){
- let input = document.createElement('input')
- input.type = 'text'
- input.placeholder = key
- input.value = value
- input.oninput = () => oninput(input.value)
- setTimeout(() => {
- oninput(input.value)
- }, 0)
- return input
- },
- }
- this.okCallback = okCallback
- this.cancelCallback = cancelCallback
-
- this.data = data
- this.dataBackup = Object.assign({}, data)
- this.validators = {}
- // код ниже дает возможность выполнять что-либо при модификации объекта
- // this.validators = new Proxy(this.validators , {
- // set(target, prop, val) {
- // if (typeof val == 'function') {
- // target[prop] = val
- // тут можно написать функцию,
- // которая будет выполняться при добавлении в
- // объект функции в качестве свойства
- // return true
- // } else {
- // return false
- // }
- // }
- // })
- let formThis = this
- el.appendChild(formBody)
- function createTable(inputData) {
- for (const [key, value] of Object.entries(inputData)) {
- let dataUpdateValidation = (valueOfInput) => {
- // console.log(valueOfInput)
- if (rowMandatory && !valueOfInput) {
- input.style.border = '4px solid red'
- callBackValidator[key] = false
-
- if (formThis.validators && key in formThis.validators) {
- let valid = formThis.validators[key](valueOfInput,key,data,input)
- if (valid === true) {
- data[key] = valueOfInput
- tdErr.innerText = ''
- input.style.backgroundColor = 'white'
- } else if (typeof valid === 'string') {
- tdErr.innerText = valid
- input.style.backgroundColor = '#800000'
- }
- } else {
- data[key] = valueOfInput
- }
-
- } else {
- input.style.border = '1px solid rgb(118, 118, 118)'
-
- if (formThis.validators && key in formThis.validators) {
- let valid = formThis.validators[key](valueOfInput,key,data,input)
- if (valid === true) {
- callBackValidator[key] = true
- data[key] = valueOfInput
- tdErr.innerText = ''
- input.style.backgroundColor = 'white'
- } else if (typeof valid === 'string') {
- callBackValidator[key] = false
- tdErr.innerText = valid
- input.style.backgroundColor = '#800000'
- }
- } else {
- callBackValidator[key] = true
- data[key] = valueOfInput
- }
- }
- okButton.disabled = checkObj(callBackValidator)
- }
- const tr = document.createElement('tr')
- table.append(tr)
- let rowMandatory = false
- const th = document.createElement('th')
- if (key[0] === '*') {
- const thPre = document.createElement('span')
- thPre.innerText = '* '
- thPre.style.color = 'red'
- th.append(thPre)
- const thCont = document.createElement('span')
- thCont.innerText = key.slice(1)
- th.append(thCont)
- rowMandatory = true
- } else {
- th.innerText = key
- }
- tr.append(th)
- const td = document.createElement('td')
- tr.append(td)
-
- const input = inputCreators[value.constructor.name](key, value, dataUpdateValidation)
- td.append(input)
- const tdErr = document.createElement('td')
- tr.append(tdErr)
- }
- }
- createTable(this.data)
- }
-
-
- let form = new Form(formContainer, {
- '*name': '',
- '*surname': 'AAA',
- fathername: 'batkovch',
- married: true,
- password: '***',
- birthday: new Date((new Date).getTime() - 86400000 * 30*365)
- }, () => console.log('ok'),() => console.log('cancel') )
- form.okCallback = (data) => console.log(data)
- form.cancelCallback = () => console.log('aaaa')
- form.validators['*surname'] = (value, key, data, input) => value.length > 2 &&
- value[0].toUpperCase() == value[0] &&
- !value.includes(' ') ? true : 'Wrong surname'
- form.validators.fathername = (value, key, data, input) => value.length > 2 &&
- value[0].toUpperCase() == value[0] &&
- !value.includes(' ') ? true : 'Wrong fathername'
- console.log(form)
- // fetch('https://open.er-api.com/v6/latest/USD')
- // .then(res => res.json())
- // .then(data => {
- // currencyRates = data.rates
- // let rates = new Form(formContainer, currencyRates, () => console.log('ok'),() => console.log('cancel') )
- // })
- }
|