|
@@ -0,0 +1,89 @@
|
|
|
+<head>person Form</head>
|
|
|
+
|
|
|
+<body>
|
|
|
+
|
|
|
+
|
|
|
+ <script>
|
|
|
+ const setName = document.createElement('input') ;
|
|
|
+ const setSurName = document.createElement('input') ;
|
|
|
+ const setFatherName = document.createElement('input') ;
|
|
|
+ const setAge = document.createElement('input') ;
|
|
|
+ const setFullName = document.createElement('input') ;
|
|
|
+ document.body.append(setName);
|
|
|
+ setName.innerText = "Name";
|
|
|
+ document.body.append(setSurName);
|
|
|
+ setSurName.innerText = "Surname";
|
|
|
+ document.body.append(setFatherName);
|
|
|
+ setFatherName.innerText = "Fathername";
|
|
|
+ document.body.append(setFullName);
|
|
|
+ setFullName.innerText = "Fullname";
|
|
|
+ document.body.append(setAge);
|
|
|
+ setAge.innerText = "Age";
|
|
|
+
|
|
|
+ nameInput.oninput = () => { };
|
|
|
+
|
|
|
+ const isUpperCase = (str) => str.toUpperCase() == str;
|
|
|
+ let createPersonClosure = function (name, surName) {
|
|
|
+ let result = {};
|
|
|
+ let age = 17;
|
|
|
+ let fatherName = "Пупкович";
|
|
|
+ result.getName = () => name;
|
|
|
+ result.getSurName = () => surName;
|
|
|
+ result.getFullName = function () {
|
|
|
+ return `${result.getName()} ${result.getSurName()}`;
|
|
|
+ }
|
|
|
+ result.setFullName = (newFullName) => {
|
|
|
+ const arrFullName = newFullName.split(' ');
|
|
|
+ result.setFatherName(arrFullName[2]);
|
|
|
+ result.setSurName(arrFullName[0]);
|
|
|
+ result.setName(arrFullName[1]);
|
|
|
+
|
|
|
+ }
|
|
|
+ result.setName = (newName) => {
|
|
|
+ if (isUpperCase(newName[0])) {
|
|
|
+ name = newName;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ alert("wrong Name format");
|
|
|
+ }
|
|
|
+ result.setSurName = (newSurName) => {
|
|
|
+ if (isUpperCase(newSurName[0])) {
|
|
|
+ surName = newSurName;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ alert("wrong Surname format");
|
|
|
+ }
|
|
|
+ result.setFatherName = (newFatherName) => {
|
|
|
+ if (isUpperCase(newFatherName[0])) {
|
|
|
+ fatherName = newFatherName;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ alert("wrong Fathername format");
|
|
|
+ }
|
|
|
+
|
|
|
+ result.getAge = () => age;
|
|
|
+ result.setAge = (newAge) => {
|
|
|
+ if (newAge >= 0 && newAge <= 100)
|
|
|
+ age = newAge;
|
|
|
+ else
|
|
|
+ alert("wrong age: " + newAge);
|
|
|
+ }
|
|
|
+ result.getFatherName = () => fatherName;
|
|
|
+ return result;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ const b = createPersonClosure("Анна", "Иванова")
|
|
|
+ b.setAge(15)
|
|
|
+ b.setFullName("Петрова Анна Николаевна")
|
|
|
+
|
|
|
+ function personForm(parent, person) {
|
|
|
+ //насоздавать инпутов (5 штук)
|
|
|
+ //надобавлять их в parent
|
|
|
+ //навесить каждому из них обработчик события типа nameInput.oninput = () => {
|
|
|
+ //тут пытаемся менять person используя person.setName. Текст в инпуте должен стать таким, который вернет setName
|
|
|
+ //}
|
|
|
+ }
|
|
|
+ </script>
|
|
|
+</body>
|