Nano Hash - криптовалюты, майнинг, программирование

Форма имени пользователя и пароля, созданная с помощью JavaScript

Я делаю простую форму входа с именем пользователя/паролем для своей веб-страницы, и у меня возникают проблемы с ее работой.

Я дважды проверил весь свой код, и jsfiddle.net говорит, что код действителен, но когда я пытаюсь нажать «Отправить» с правильным именем пользователя и паролем, он просто появляется с предупреждением в последней строке функции, говорящей имя пользователя/пароль неверны.

JavaScript:

 var un = window.document.userform.formuser.value;
 var pw = window.document.userform.formpass.value;
 function findPass()
 {
 if(un + "_" + pw == "demo_demo")
  {window.location.href='../pages/demouser.html';}
  else if (un + "_" + pw == "user2_pass2") {
     window.location.href='pages/user2.html';
  }
  else {alert('Incorrect username/password');}
 }

HTML:

 <form name="userform" action="javascript:findPass();" style="margin:0;">
 Username:<input type="text" name="formuser"><br>
 Password:<input type="password" name="formpass"><br>
 <input type="submit" value="  Sign In  ">

Я гуглил везде, и не могу найти решение моей проблемы. Также сервер не поддерживает php, поэтому я предпочитаю использовать этот метод.

Что я сделал не так?


  • Во-первых, это небезопасно, во-вторых, вы читаете значения при загрузке страницы, а не когда пользователь нажимает кнопку. 10.11.2014
  • @epascarello Итак, как мне это исправить? 10.11.2014
  • вставьте строки un и pw внутрь функции. 10.11.2014
  • @epascarello спасибо! это сработало отлично! Не могли бы вы опубликовать это как ответ, чтобы я мог отметить его как решение? 10.11.2014

Ответы:


1

Проблема в том, что когда вы определяете эти две строки:

 var un = window.document.userform.formuser.value;
 var pw = window.document.userform.formpass.value;

Страница еще не загружена. Переместите эти строки в свой метод findPass, чтобы они извлекались при нажатии кнопки (и после загрузки страницы).

10.11.2014

2

 var un = window.document.userform.formuser.value;
 var pw = window.document.userform.formpass.value;

Когда эти строки оцениваются браузером, ваша форма все еще пуста, вам нужно назначить обработчик для вашего

 <input type="submit" value="  Sign In  ">

10.11.2014

3

Как сказал epascarello: вы читаете значения при загрузке страницы, а не когда пользователь нажимает кнопку.

исправить это, изменив это:

<script language="javascript">
var un = window.document.userform.formuser.value;
var pw = window.document.userform.formpass.value;
 function findPass() {
your code ...
 }

к этому

<script language="javascript">
     function findPass() {
var un = window.document.userform.formuser.value;
var pw = window.document.userform.formpass.value;
rest of your code ...
 }

Надеюсь, это поможет вам!

10.11.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..