JavaScript函数未使用html onclick触发

时间:2019-01-06 12:36:37

标签: javascript html onclick

我正在努力让我的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 :(得分:1)

问题是,直觉上,内联处理程序本质上隐式地将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);