Browse Source

HW<11> done

Евгения Акиншина 3 years ago
parent
commit
ffe8100db4
3 changed files with 279 additions and 0 deletions
  1. 3 0
      js11/css/style.css
  2. 26 0
      js11/index.html
  3. 250 0
      js11/js/main.js

+ 3 - 0
js11/css/style.css

@@ -0,0 +1,3 @@
+body {
+    color: blue;
+}

+ 26 - 0
js11/index.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=\, initial-scale=1.0">
+    <link rel="stylesheet" href="css/style.css">
+    <title>HW11</title>
+</head>
+<body>
+    <div class="thepassword">
+        <input type="password" class="password" placeholder="Password">
+        <label >
+            <input type="checkbox" class="show-password"> See the password
+        </label>
+    </div>
+    <div>
+        <form name="theform" style="margin-top: 30px">
+            <input type="text"  placeholder="Login" onKeyup="checkform()" />
+            <input type="text"  placeholder="Password" onKeyup="checkform()" />
+            <input id="submitbutton" type="submit" disabled="disabled" value="Button" />
+        </form>
+    </div>
+    <script src='js/main.js'></script>
+</body>
+</html>

+ 250 - 0
js11/js/main.js

@@ -0,0 +1,250 @@
+// Password
+
+function Password(parent, open) {
+
+    let input = document.createElement('input')
+    input.style.marginTop = '30px'
+    parent.append(input)
+
+    let checkbox = document.createElement('input')
+    checkbox.setAttribute('type', 'checkbox')
+    parent.append(checkbox)
+
+    let content = document.createElement('span')
+    content.append('See the password')
+    content.style.color = 'blue'
+    parent.append(content)
+
+    this.setValue = (text) => input.value = text
+    
+    this.getValue = () => input.value
+
+    this.getOpen = () => input.type
+
+    checkbox.onclick = () => this.onOpenChange(input.type)
+
+    checkbox.oninput = () => this.onChange(input.type)
+
+    this.setOpen = function(open) {
+        if(open === false) {
+            input.type = 'password'
+            checkbox.checked = false
+            checkbox.onchange = function() {
+                if (input.type === 'password') {
+                    input.type = 'text'
+                    console.log('Current input type is: ' + p.getOpen())
+                } 
+                else {
+                    input.type = 'password'
+                    console.log('Current input type is: ' + p.getOpen())
+                }
+            }
+        } else {
+            if (open === true) {
+                input.type = 'text'
+                checkbox.checked = true
+                checkbox.onchange = function() {
+                    if (input.type === 'text') {
+                        input.type = 'password'
+                    } 
+                    else {
+                        input.type = 'text'
+                    }
+                }
+            } 
+        }
+    }
+}
+
+let p = new Password(document.body, true)
+
+p.onChange = () => {console.log('Input type is successfully changed, exact time of change is: ' + new Date())}
+
+p.onOpenChange = type => confirm('Current type : ' + type + '\n' + 'Cancel - leave type unchanged' + '\n' + 'OK - change type')
+
+p.setValue('qwerty')
+console.log('Current password is: ' + p.getValue())
+
+p.setOpen(false)
+console.log('Current type of input is: ' + p.getOpen())
+
+// p.setOpen(true)
+// console.log(p.getOpen()) // for true
+
+// // // or
+let showPassword = document.querySelectorAll('.show-password')
+showPassword.forEach(item => item.addEventListener('click', toogleType))
+function toogleType() {
+    let input = this.closest('.thepassword').querySelector('.password')
+    if(input.type === 'password') {
+        input.type = 'text'
+    } else {
+        input.type = 'password'
+    }
+} // decided to leave that way too - input hide/show password without 'qwerty' by default
+
+// // // LoginForm
+// // LoginForm Constructor
+
+function Loggin() {
+    
+    let loginForm = document.createElement('input')
+    loginForm.setAttribute('placeholder', 'Login')
+    loginForm.style.marginLeft = '10px'
+    loginForm.style.marginRight = '4px'
+    document.body.appendChild(loginForm)
+
+    let passwordForm = document.createElement('input')
+    passwordForm.setAttribute('placeholder', 'Password')
+    document.body.appendChild(passwordForm)
+
+    let button = document.createElement('button')
+    button.style.marginLeft = '4px'
+    button.textContent = 'Button'
+    document.body.appendChild(button)
+
+    this.setInfo = () => [loginForm.value, passwordForm.value]
+
+    this.getLog = (log) => loginForm.value = log
+    
+    this.getPass = (pass) => passwordForm.value = pass
+
+    this.setForm = function() {
+        button.disabled = true
+        loginForm.oninput = passwordForm.oninput = () => {
+            if(loginForm.value.length > 0 & passwordForm.value.length > 0){
+                button.disabled = false
+            }
+            else {
+                button.disabled = true
+            }
+        }
+    }
+}
+
+let l = new Loggin()
+l.setForm()
+l.getLog('') // any login
+l.getPass('') // any password
+console.log(l.setInfo()) // array of log and pass
+
+// for example
+// l.getLog('qwerty')
+// l.getPass('123') 
+// console.log(l.setInfo()) // Array (2) ["qwerty", "123"]
+
+// // // // or
+function checkform() {
+    let f = document.forms['theform'].elements
+    let cansubmit = true;
+
+    for (let i = 0; i < f.length; i++) {
+        if (f[i].value.length == 0) {
+            cansubmit = false
+        }
+    }
+    if (cansubmit) {
+        document.getElementById('submitbutton').disabled = false
+    }
+}
+
+// Password Verify
+
+// function Password(parent, open) {
+//     let input1 = document.createElement('input')
+//     parent.append(input1)
+//     let checkbox = document.createElement('input')
+//     checkbox.setAttribute('type', 'checkbox')
+//     parent.append(checkbox)
+//     let content = document.createElement('span')
+//     content.append('See the password')
+//     content.style.marginRight = '5px'
+//     content.style.color = 'blue'
+//     parent.append(content)
+
+//     let input2 = document.createElement('input')
+//     parent.appendChild(input2)
+//     let btn = document.createElement('button')
+//     btn.textContent = 'Button'
+//     parent.appendChild(btn)
+
+//     this.setValue = (text) => input1.value = text
+
+//     this.getValue = () => input1.value
+
+//     this.getOpen = () => input1.type
+
+//     checkbox.onclick = () => this.onOpenChange(input1.type)
+
+//     checkbox.oninput = () => this.onChange(input1.type)
+
+//     this.setOpen = function(open) {
+//         if(open === false) {
+//             input1.type = 'password'
+//             checkbox.checked = false
+//             checkbox.onchange = function() {
+//                 if (input1.type === 'password') {
+//                     input1.type = 'text'
+//                     console.log('Current input type is: ' + p.getOpen())
+//                 }
+//                 else {
+//                     input1.type = 'password'
+//                     console.log('Current input type is: ' + p.getOpen())
+//                 }
+//                 if(input1.type === 'text') {
+//                     input2.hidden = true
+//                 }
+//                 else if (input1.type === 'password') {
+//                     input2.hidden = false
+//                 }
+//             }
+//         }
+//         else {
+//             if (open === true) {
+//                 input1.type = 'text'
+//                 checkbox.checked = true
+//                 checkbox.onchange = function() {
+//                     if (input1.type === 'password') {
+//                         input1.type = 'text'
+//                     }
+//                     else {
+//                         input1.type = 'password'
+//                     }
+//                 }
+//             }
+//         }
+//     }
+
+//     this.passwordVerify = function() {
+//         btn.disabled = true
+//         input1.oninput = input2.oninput = () => {
+//             if(input1.value === input2.value) {
+//                 btn.disabled = false
+//             }
+//             else {
+//                 btn.disabled = true
+//             }
+//         }
+//     }
+// }
+
+// let p = new Password(document.body, true)
+
+// p.onChange = () => {console.log('Input type is successfully changed, exact time of change is: ' + new Date())}
+
+// p.onOpenChange = type => confirm('Current type : ' + type + '\n' + 'Cancel - leave type unchanged' + '\n' + 'OK - change type and hide the second input')
+
+// p.setValue('qwerty')
+// console.log('Current password is: ' + p.getValue())
+
+// p.setOpen(false)
+// console.log('Current type of input is: ' + p.getOpen())
+// p.passwordVerify()
+
+// // p.setOpen(true)
+// // console.log(p.getOpen()) // for true
+
+
+
+
+