Как получить ключ ввода для отправки формы в JavaScript

0

Теперь, прежде чем вы скажете, что здесь есть ответ, я попробовал пару, и никто не выработал, например, этот: запустите нажатие кнопки с помощью 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")
}
  • 0
    Попробуйте сделать jsfiddle из этой проблемы. Это более кратко, и вы можете просто ответить на свой вопрос /
  • 0
    Пожалуйста, оставьте свой код здесь, чтобы вопрос оставался в силе после того, как вы исправите свой веб-сайт.
Показать ещё 3 комментария
Теги:

2 ответа

0

Если вам нужен последовательный и надежный способ запуска submitentry при submitentry формы, вы должны использовать

<form onsubmit="submitentry();">
    ...
</form>

вместо

 <input ... onClick="submitentry();">
  • 0
    Когда я делаю это, ни кнопка не работает, ни ввод.
  • 0
    Теперь это странно. Что ты сделал именно?
0

Вместо вызова 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;
}
  • 0
    Спасибо, но по какой-то причине, независимо от того, что я пытаюсь сделать, это просто не позволит мне отправить с помощью кнопки ввода. В любом случае, спасибо за ваше время.

Ещё вопросы

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