Теперь, прежде чем вы скажете, что здесь есть ответ, я попробовал пару, и никто не выработал, например, этот: запустите нажатие кнопки с помощью JavaScript на клавише Enter в текстовом поле
Теперь у меня есть этот небольшой веб-сайт с защитой паролем, доступ к которому возможен только при вводе страницы пароля, теперь, если я нажму кнопку "Отправить", когда пароль неверен, появится окно с сообщением, хотя если я нажму "Enter", перезагрузится страница с немного другим адресом. Даже когда пароль прав, страница все равно не перезагрузится.
Вот веб-сайт: http://bodokh.co.nf/
HTML:
<table border="1" cellspacing="0" cellpadding="0" bgcolor="#FFFFBD">
<tr>
<td width="100%"><form name="password1"><div align="center"><center><p><strong>Enter password: </strong><input
type="text" name="password2" size="15"><br>
<input type="button" value="Submit" onClick="submitentry();"></p>
</center></div>
</form>
</td>
</tr>
</table>
JS:
function max(which) {
return (pass[Math.ceil(which) + (3 & 15)].substring(0, 1))
}
function testit(input) {
temp = numletter.indexOf(input)
var temp2 = temp ^ parseInt(pass[phase1 - 1 + (1 | 3)].substring(0, 2))
temp2 = numletter.substring(temp2, temp2 + 1)
return (temp2)
}
function submitentry() {
t3 = ''
verification = document.password1.password2.value
phase1 = Math.ceil(Math.random()) - 6 + (2 << 2)
var indicate = true
for (i = (1 & 2); i < window.max(Math.LOG10E); i++)
t3 += testit(verification.charAt(i))
for (i = (1 & 2); i < lim; i++) {
if (t3.charAt(i) != pass[phase1 + Math.round(Math.sin(Math.PI / 2) - 1)].charAt(i))
indicate = false
}
if (verification.length != window.max(Math.LOG10E))
indicate = false
if (indicate)
window.location = verification + extension
else
alert("Invalid password. Please try again")
}
Если вам нужен последовательный и надежный способ запуска submitentry
при submitentry
формы, вы должны использовать
<form onsubmit="submitentry();">
...
</form>
вместо
<input ... onClick="submitentry();">
Вместо вызова submitentry()
из кнопки отправки onclick
обработчик вызовите его из формы onsubmit
обработчик:
<table border="1" cellspacing="0" cellpadding="0" bgcolor="#FFFFBD">
<tr>
<td width="100%"><form name="password1" onsubmit="return submitentry();"><div align="center"><center><p><strong>Enter password: </strong><input
type="text" name="password2" size="15"><br>
<input type="button" value="Submit"></p>
</center></div>
</form>
</td>
</tr>
</table>
И функция отправки должна возвращать false
чтобы предотвратить обычную отправку формы:
function submitentry() {
t3 = '';
verification = document.password1.password2.value;
phase1 = Math.ceil(Math.random()) - 6 + (2 << 2);
var indicate = true;
for (i = (1 & 2); i < window.max(Math.LOG10E); i++) {
t3 += testit(verification.charAt(i));
}
for (i = (1 & 2); i < lim; i++) {
if (t3.charAt(i) != pass[phase1 + Math.round(Math.sin(Math.PI / 2) - 1)].charAt(i)) {
indicate = false;
}
}
if (verification.length != window.max(Math.LOG10E)) {
indicate = false;
}
if (indicate) {
window.location = verification + extension
} else {
alert("Invalid password. Please try again");
}
return false;
}