Как написать скрипт для проверки несколько логинов и паролей в одном input ?
Ребята, скажите возможно ли написать скрипт (Javasript DOM) чтобы в одном окне input реализовать проверку ввода несколько логинов и паролей к ним ?
Без использования модальных окон, метода prompt ! Только одно окно input и две кнопки. Это в обще реально ? :help: <form name="shad"> <input type="text" name="txt" id="put" size="10"/> <span id="tim"> </span> <p> <input type="button" value="Войти" onclick=""/> </p> <input type="reset" id="tom" onclick=""/> </form> |
Цитата:
|
Реального применения . У меня есть некоторые наброски скрипта, но все эти попытки не рабочие, получается только один логин и пароль.
Следуя по схеме if else не получается реализовать. Но как добавить еще нескольких логинов и паролей к ним, вот это "теорема ферма" ? function doCheck() { if(document.shad.txt.value == "admin") { document.getElementById("tim").innerHTML='<font color="green"> Введите пароль ? </font>'; document.getElementById("put").value=''; document.getElementsByTagName("input")[0].setAttribute("type", "password"); } else if(document.shad.txt.value == "123"){ document.getElementById("tim").innerHTML='<font color="#54948E"> ДОСТУП РАЗРЕШЕН ! </font>' document.getElementById("put").value=''; document.getElementsByTagName("input")[0].setAttribute("type", "text"); } else if(document.shad.txt.value == ""){ document.getElementById("tim").innerHTML='<font color="#54948E"> Вы ничего не заполнили </font>' } else { document.getElementById("tim").innerHTML='<font color="red"> ДОСТУПА НЕТ !</font>' } } function hido(){ document.getElementById("tim").innerHTML="" document.getElementsByTagName("input")[0].setAttribute("type", "text") } </script> |
Vitalik2301, зачем несколько логинов?
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Скажите одно это в обще реально сделать на javascript ?
Вот почти готовый рабочий скрипт, суть скрипта:
Вводим в окошке логин - adm1, жмем кнопку, получаем запрос prompt с подтверждением пароля, вводим пароль и получаем результат.. Всё! Вся сложность заключается в том, что мне надо заменить окно prompt на input, т.есть в окошке input я ввожу логин, нажимаю кнопку, (окошко очистилось) и затем в этом же окошке , ввожу пароль и получаю результат. Как это сделать ? Поменять значения в input, подменить input ? Пробывал, ни фига.. 1)Input.value="" 1)Input.value="Adm1" 2)submit 3)Input.value="" - Введите пароль? 4)Input.value="123" 5)submit 6)document.innerHTML="ВХОД ВЫПОЛНЕН - ADM1" - Результат! <head> <meta http-equiv="Content-Type" content="text/html"/> </head> <body> <script type="text/javascript"> function doCheck(){ var userName = document.shad.txt.value; if (userName == 'adm1') { document.getElementById("tim").innerHTML='<font color="green"> Введите пароль ? </font>'; document.getElementById("put").value=''; var pass = +prompt('Введите пароль?', ''); if (pass == '123') { document.getElementById("tim").innerHTML='<font color="green">ВХОД ВЫПОЛНЕН - ADM1</font>'; document.getElementById("put").value='' } else if (pass == null) { // (*) alert( 'Вход отменён' ); } else { document.getElementById("tim").innerHTML='<font color="red">ОШИБКА №10 Неверная команда </font>'; document.getElementById("put").value='' } } else if (userName == null) { // (**) alert( 'Вход отменён' ); } else if (userName == '') { document.getElementById("tim").innerHTML='<font color="#B0BC79"> Вы не ввели команду </font>'; } else if (userName == 'adm2') { document.getElementById("tim").innerHTML='<font color="green"> Введите пароль ? </font>'; document.getElementById("put").value=''; var pass = prompt('Введите пароль?', ''); if (pass == '123') { document.getElementById("tim").innerHTML='<font color="green"> ВХОД ВЫПОЛНЕН - ADM2</font>'; } else if (pass == null) { // (*) alert( 'Вход отменён' ); } else { alert( 'ОШИБКА №10 \n Неверная команда' ); document.getElementById("tim").innerHTML='' } } else if (userName == 'adm3') { document.getElementById("tim").innerHTML='<font color="green"> Введите пароль ? </font>'; document.getElementById("put").value=''; var pass = prompt('Введите пароль?', ''); if (pass == '123') { document.getElementById("tim").innerHTML='<font color="green"> ВХОД ВЫПОЛНЕН - ADM3 </font>'; } else if (pass == null) { // (*) alert( 'Вход отменён' ); } else { alert( 'ПОМИЛКА №10 \n Неверная команда' ); document.getElementById("tim").innerHTML='' } } else { document.getElementById("tim").innerHTML='<font color="red">ОШИБКА №10 Неверная команда </font>'; document.getElementById("put").value='' } } function hido(){ document.getElementById("tim").innerHTML="" } </script> <form name="shad"> <p> Т400 (команда)</p> <input type="text" name="txt" id="put" size="10"/> <span id="tim"> </span> <p> <input type="button" value="Проверить" onclick="doCheck()"/> </p> <input type="reset" id="tom" onclick="hido()"/> </form> </body> |
Цитата:
|
Цитата:
Почему нельзя вводить сразу два поля логин и пароль? Куда и зачем ты отправляешь логин? Если вся проверка у тебя на клиенте... :) |
Знаешь, критика конечно нужна, но "зачем" , "почему" не решит проблему.
Я и сам знаю что лучше пароли хранить на сервере, но, поставлена задача с такими условиями и её надо решить. "Одно окно и две кнопки" И даже не имеет значения ради чего или для кого применения. Поделюсь, не секрет, я пишу логику для виртуального кассового аппарата, оболочку, интерфейс я уже сделал. Пока что я делаю первые наброски, разбивая один большой скрипт по модулям, я столкнулся с такой проблемой, могу ли я её решить силами Javascript, это я и хочу узнать здесь. Весь проект свой я не буду выкладывать здесь. Я расписал свою проблему максимально доступно, чтобы понятно было всем. |
Vitalik2301, а несколько логинов здесь при чем?
|
Цитата:
А по сути, то наверное надо понимать, что ввод всего в одно поле возможен только в том случае, если поставлены жесткие ограничения - запрет в качестве ввода в логин и пароль определенных символов, которые будут приняты как разделители ввода. Иначе не получить множества, а вообще такие задачи такими граблями не решают. Если есть условие ввода множества, то есть пара полей - для логина и пароля, надо еще ввести, жмем кнопку добавить, в форму добавляется еще пара полей для логина и пароля, и т.д. А скрипт обрабатывает элементы массива (пары полей) проверяя в каждом наборе логин и пароль. И пароли с логинами также должны тогда хранится в как массив данных. |
Логин это просто к примеру я написал, вместо них будут команды которые выполняют отчет, но перед вводом команды будет запрос с условным паролем.
Конечно, было бы здорово где нибудь содрать исходники на языке С, с реальных торговых программ и перевести в Яваскрипт, но , где же такое взять? |
Цитата:
|
Бывaли случаи, когда "Логин@мыло.им п4р0л6" удобно было в одном поле иметь для экономии времени (ни tab, ни клик мышкой).
Что-то типа этого: <body> <a href='#'>Продукция</a> <a href='#'>О нас…</a> <input id=Login type=text placeholder='Логин@почтовый' value='' onkeyup=' var s = this.value.replace(/\s+/, ""); if(s != this.value) this.value = s, document.getElementById("PassWord").focus(); ' /> <input id=PassWord type=password placeholder='В4ш_П4р0л6' value='' onkeyup=' if(this.value == "") document.getElementById("Login").focus(); ' /> </body>P.S.: Пример, конечно, тупой.:yes: Но, креативный и использовался (тут я его упростил)… |
Спасибо конечно что пытаешься мне помочь.
Я почти добился чего хотел, но скрипт как карточный домик, чихнешь и он рассыпется. Думаю что либо серьёзное решается только через алгоритмы и ООП. <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="windows-1251"/> <title>344</title> </head> <body> <script type="text/javascript"> function doCheck() if(document.shad.txt.value == "101") { document.getElementById("tim").innerHTML='<font color="green"> Введите пароль ? </font>'; document.shad.txt.value=''; document.getElementsByTagName("input")[0].setAttribute("type", "password"); document.getElementsByTagName("input")[0].setAttribute("id", "xxx"); } else if(document.getElementById("xxx").value == "12321"){ document.getElementById("tim").innerHTML='<font color="#54948E"> X ОТЧЕТ </font>' document.shad.txt.value=''; document.getElementsByTagName("input")[0].setAttribute("type", "text"); document.getElementsByTagName("input")[0].setAttribute("id", ""); //document.getElementsByTagName("input")[0].setAttribute("name", "txt"); } else if(document.shad.txt.value == ""){ document.getElementById("tim").innerHTML='<font color="#54948E"> Вы ничего не заполнили </font>' } else { document.getElementById("tim").innerHTML='<font color="red"> Не правильно !</font>'} } function hido(){ document.getElementById("tim").innerHTML="" document.shad.txt.value=''; document.getElementsByTagName("input")[0].setAttribute("type", "text"); document.getElementById("xxx").value="" document.getElementsByTagName("input")[0].setAttribute("name", "txt"); } </script> <form name="shad"> <p>Т400 (команда)</p> <input type="text" name="txt" id="" size="10"/> <span id="tim"> </span> <br /> <p> <input type="button" value="Проверить" onclick="doCheck()"/> </p> <input type="reset" id="tom" onclick="hido()"/> </form> </body> </html> |
Vitalik2301,
так что все-таки надо вводить, команды как команда=>значение, или же все таки кучу паролей? Зачем вам геморрой с кучей в одном поле. Можно например так: <html> <head> <style> .terminal, #command { width: 250px; height: 100px; padding: 15px; border: 1px solid #ccc; float: left; } #terminal { width: 200px; margin-right: 10px; } #command { overflow: auto; } ul { list-style: none; margin: 0; padding: 0; } </style> <script> document.addEventListener("DOMContentLoaded", function() { var com = {}, list = document.querySelector('#command'); document.querySelector('form').onkeypress = function (e) { var o = e.target || e.srcElement, v, u = '', p; if(e.keyCode == 13) { e.preventDefault(); if(o.tagName == 'INPUT' && (v = o.value.split(' ')).length==3) { o.value = ''; com[v[0]] = [v[1], v[2]]; for(p in com) u += '<li><span>' + p + '</span> <span>' + com[p][0] + '</span> <span>' + com[p][1] + '</span>'; list.innerHTML = '<ul>' + u + '</ul>'; } } } }); </script> </head> <body> <div class="terminal"> <form> <label>Command Parameter</label> <input type="text" name="txt"/> </form> </div> <div id="command"></div> </body> </html> </body> </html> Здесь просто для примера. А суть в том, что контролируется ввод двух параметров разделенных пробелом по нажатию клавиши Enter, и если это условие выполняется, то оно сохраняется в объект. Содержимое объекта выводится списком рядом, и можно по выбору в нем удалить из набранного любую позицию. Естественно при вводе по Enter можно и организовать любую проверку и выполнять заданные действия. А уже готовый набор для отправки можно объединить как душе угодно. |
1) Команда
2) Запрос с подтверждением пароля для этой команды 3) Значение Спасибо, интересный скрипт, я поработаю над ним. |
Не проблема и группу по три разрешить. Кстати забыл в коде проверку источника события сделать. Изменил и сделал группой по три.
|
Часовой пояс GMT +3, время: 13:42. |