Я пытаюсь найти способ навигации по 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 и могу легко пропустить что-то, если вы публикуете только фрагменты.
Спасибо, кучи,
Ваш код должен выглядеть следующим образом:
<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
Надеюсь, что это работает.
Вы устанавливаете 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;"
window.location.href = 'http://your.url.here';
Обратите внимание, что я помещаю окно перед местоположением.