Цитата:
Почему нельзя вводить сразу два поля логин и пароль? Куда и зачем ты отправляешь логин? Если вся проверка у тебя на клиенте... :) |
Знаешь, критика конечно нужна, но "зачем" , "почему" не решит проблему.
Я и сам знаю что лучше пароли хранить на сервере, но, поставлена задача с такими условиями и её надо решить. "Одно окно и две кнопки" И даже не имеет значения ради чего или для кого применения. Поделюсь, не секрет, я пишу логику для виртуального кассового аппарата, оболочку, интерфейс я уже сделал. Пока что я делаю первые наброски, разбивая один большой скрипт по модулям, я столкнулся с такой проблемой, могу ли я её решить силами 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, время: 09:02. |