Перейдите к URL-адресу, когда правильный пароль введен в HTML-форму, используя Js

0

Я пытаюсь найти способ навигации по URL-адресу, когда пользователь вводит правильный пароль в моей форме и отображает предупреждение об ошибке, если они ввели неправильный пароль. Я полный новичок для js и использовал эти две ссылки: Пароль правильный? затем перенаправить и добавить функцию onclick, чтобы перейти к url в javascript? чтобы скомпоновать мой текущий код. Мой текущий код:

                    <form class="hero-form">
                    <fieldset>
                    <div class="row-fluid">
                        <label>Enter your passcode</label>
                        <input type="password" name="password" maxlength="8"      class="span7" id="password" placeholder="e.g. 12345678" required/>
                        <button class="btn btn-info btn-large span5" id="joe_btn" input type="submit" value="Submit" onclick="if (document.getElementById('password').value == '12345678') location.href = 'http://example.url.here'; else alert('Please check your passcode and try again');">Enter</button>

                    </div>    
                    </fieldset>
                </form>

До сих пор я могу заставить его вернуть предупреждение, если пароль правильный, но как только я заменю:

alert('congrats, correct password')

с этим это не работает:

location.href = 'http://your.url.here'

Любая помощь была бы чрезвычайно оценена. Пожалуйста, напишите полный код для вашего ответа, поскольку я являюсь абсолютным новичком с js и могу легко пропустить что-то, если вы публикуете только фрагменты.

Спасибо, кучи,

  • 1
    Какой браузер вы используете?
  • 1
    Вы можете запутаться, написав весь этот код в событии onclick, вы можете создать функцию onSubmit () и затем изменить атрибут onclick кнопки на onSubmit ().
Теги:
forms

3 ответа

2
Лучший ответ

Ваш код должен выглядеть следующим образом:

<script type="text/javascript">
     function onSubmit() {
          if (document.getElementById('password').value == '12345678') {window.location.href = 'http://google.co.in'; }else{ alert('Please check your passcode and try again');}
     }
</script>

<fieldset><form class="hero-form" action="#">
          <div class="row-fluid">
                  <label>Enter your passcode</label>
                  <input type="password" name="password" maxlength="8"      class="span7" id="password" placeholder="e.g. 12345678" required/>

          </div>    
</form></fieldset>
<button class="btn btn-info btn-large span5" id="joe_btn" onclick="onSubmit()">Enter</button>

Ваша ошибка: кнопка не должна отправлять форму, поэтому я взял ее вне формы. И я обновил location.href к window.location.href

Надеюсь, что это работает.

  • 0
    Только что проверил и работает отлично! Большое спасибо Танай - невероятно ценится! :)
  • 0
    Эй, я дал вам ответ, тогда почему вы благодарите его. Меня зовут ЛЮБОЙ, а не ТАНАЙ.
0

Вы устанавливаете location.href отлично, но проблема в том, что перед тем, как браузер сможет перейти на эту новую страницу, ваша форма будет отправлена (поскольку пользователь нажал кнопку type="submit"). Отправка формы заставляет браузер начать новую навигацию к действию формы, что отменяет навигацию, начатую с установки location.href. В вашем коде действие формы не было установлено, поэтому оно по умолчанию совпадает с той же страницей, на которой вы уже находитесь. Фактически, браузер вернется к той же странице, и, похоже, ничего не происходит - хотя вы можете заметить, что содержимое вашей формы появилось в панели навигации браузера.

Вы должны запретить браузер автоматически отправлять форму при нажатии кнопки. Один из способов сделать это - добавить return false; до конца действия onclick:

onclick="if (document.getElementById('password').value == '12345678') location.href = 'http://example.url.here'; else alert('Please check your passcode and try again'); return false;"
0
window.location.href = 'http://your.url.here';

Обратите внимание, что я помещаю окно перед местоположением.

  • 1
    он уже поставил точку с запятой после утверждения, поэтому удалите эту часть ответа
  • 1
    Я иду с тобой, мы должны поставить окно перед ним.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню