У меня есть форма входа в систему, которая по завершении отправляет пользователей на страницу с URL-адресом, сгенерированным JavaScript (разрешая мне передать переменную JavaScript в мой PHP-скрипт с использованием $ _GET). Тем не менее, для этого в настоящее время кнопка "Логин" - это "тип =" кнопка "". Хотя все работает, это означает, что пользователи не могут войти, нажав Enter; они должны на самом деле нажать кнопку "Вход". Есть ли способ, которым я могу "Отправить" форму, но все же указывая на URL, сгенерированный JavaScript?
Это кажется довольно простой концепцией, которая говорит мне, что я могу приблизиться к ней неправильно. Любые рекомендации приветствуются.
HTML:
<form name="login">
Username: <input type="text" name="user_id"/>
Password: <input type="password" name="pswrd"/>
<input type="button" onclick="check(this.form)" value="Login"/>
</form>
JavaScript:
function check(form) {
var userCredentials = [["jsmith", "smithpassword", "John Smith"], ["jdoe", "doepassword", "Jane Doe"]];
var credCheck = 0;
for (var i = 0; i < userCredentials.length; i++) {
if (userCredentials[i][0] == form.user_id.value) {
credCheck += 1;
var displayName = userCredentials[i][2];
if (userCredentials[i][1] == form.pswrd.value) {
window.open("home.php?display_name=" + displayName, "_self");
} else {
alert('The username and password do not match.');
return false;
}
}
}
if (credCheck == 0) {
alert('The username entered is not valid.');
return false;
} else {
return true;
}
}
Вместо того чтобы открыть PHP страницы с помощью JavaScript, вам необходимо изменить форму action
динамически, чтобы указать на генерируемую ссылку.
HTML:
<form name="login">
Username: <input type="text" name="user_id"/>
Password: <input type="password" name="pswrd"/>
<input type="submit" onclick="check(this.form)" value="Login"/>
</form>
JavaScript: (строка 9 и 10 изменена)
function check(form) {
var userCredentials = [["jsmith", "smithpassword", "John Smith"], ["jdoe", "doepassword", "Jane Doe"]];
var credCheck = 0;
for (var i = 0; i < userCredentials.length; i++) {
if (userCredentials[i][0] == form.user_id.value) {
credCheck += 1;
var displayName = userCredentials[i][2];
if (userCredentials[i][1] == form.pswrd.value) {
form.action = "home.php?display_name=" + displayName;
return true;
} else {
alert('The username and password do not match.');
return false;
}
}
}
if (credCheck == 0) {
alert('The username entered is not valid.');
return false;
} else {
return true;
}
}
method="post"
к тегу form
в вашем html
Вы можете попробовать:
<form name="login" onsubmit="check(this)">
Username: <input type="text" name="user_id"/>
Password: <input type="password" name="pswrd"/>
<input type="submit" value="Login"/>
</form>
_self
и установите его в качествеtarget
дляform
, а затем отправьте форму