Функция Javascript не запускается с помощью html onclick - PullRequest
0 голосов
/ 06 января 2019

Я борюсь за то, чтобы моя функция JavaScript запускалась при нажатии кнопки на моей HTML-странице. Мой фрагмент кода HTML:

<!DOCTYPE html>
    <html>
        <head>
        <title>VLA SYSTEM</title>
        <a href="logout.php" onclick="logout();" style="float:right;">Logout</a>
        <script
            type ="text/JavaScript" src="logout.js"></script>

        </head>
    <body>
<form>
      <script
          type ="text/JavaScript" src="regGen.js"></script>
          <script
          type="text/JavaScript" src="submit.js"></script>
<input type="button" name="btnAssign" value="Assign Owner To Registration Number..." onclick="submit()">

Мой фрагмент кода JavaScript:

function submit() {
    window.alert("Information Captured And Stored To Database!");
}

Идея состоит в том, что когда пользователь нажимает кнопку, должно срабатывать оповещение, информирующее пользователя о том, что информация была захвачена, однако я не могу отобразить это оповещение.

Любой совет будет принят с благодарностью.

1 Ответ

0 голосов
/ 06 января 2019

Проблема заключается в том, что встроенные обработчики неинтуитивно по существу неявно используют with (this) для элемента, вызвавшего событие, и для родительского элемента и т. Д .:

<form>
  <input type="button" name="btnAssign" value="Assign Owner To Registration Number..."
    onclick="console.log(submit === document.querySelector('form').submit)"
  >
</form>

И form.submit - это встроенная функция отправки формы.

Либо используйте другое имя функции, например doAlert:

onclick="doAlert()"

и

function doAlert() {
  window.alert("Information Captured And Stored To Database!");
}

Или подключите слушателя правильно, используя вместо этого Javascript (встроенные обработчики являются довольно плохой практикой и могут привести к не интуитивному поведению, как вы видите):

document.querySelector('input[name="btnAssign"]).addEventListener('click', submit);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...