我正在努力让我的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!");
}
这个想法是,当用户单击按钮时,警报应触发,通知用户已捕获信息,但是,我无法显示此警报。
任何建议将不胜感激。
答案 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);