Я новичок в веб-программирование и попытался сделать функцию входа (с HTML, CSS и только JS), но это не будет работать так же:/JS делает работу в консоли, но не с OnClick
<li>
<a id="myLink" href="#" onclick="MyFunction();">
<i class="fa fa-user-plus" aria-hidden="true"></i>
Register
</a>
<script>
function MyFunction() {
var username = prompt("Please choose a username");
var password = prompt("Please choose a password");
}
</script>
</li>
<li>
<a id="myPw" href="#" onclick="MyPassword();">
<i class="fa fa-unlock" aria-hidden="true"></i>
Login
</a>
<script>
function MyPassword() {
var verifyuser = prompt("Please enter your username")
var verifypw = prompt("Please enter your password")
if (verifyuser === username && verifypw === password) {
alert("You have been logged in!")
}
}
</script>
Таким образом, в основном, когда я нажимаю «зарегистрироваться», посетителю предлагается выбрать имя пользователя и pw, которое позднее он может использовать для входа в систему, если он нажимает «login» Однако, если я зашел в java-консоль после регистрации и введите «имя пользователя» «просто посмотреть, помня ли имя« var »var, я получаю Uncaught ReferenceError: username is not defined(…)
.
ОДНАКО, когда я не нажимаю «Регистрация» и просто введите код js вручную в консоли js, это действительно работает. Поэтому я набираю это на консоли (по одной строке каждый):
var username = prompt("Please choose a username"); //now I enter a username
var password = prompt("Please choose a password"); //now I enter a pw
username (now it displays what I just entered when I was prompted for username)
password (now it displays what I just entered for password)
Любые идеи о том, в чем проблема?
Awesome! Это сработало! Так важно, чтобы var username и var password приходили к фактической функции, чтобы объявить их глобальными? – Ympker
Каждое объявление (т. Е. 'Var varablename =" значение ") переменной внутри функции доступно только внутри этой функции. Если вы объявляете его вне любой функции, это глобально. –
Предположим, что 'MyFunction' не вызывается в той же области (скажем, не в загрузке страницы, а в onclick) - не обязательно ** перед **, а в« корневом »скрипте, но не в какой-либо области. –