-1

这不是“为什么 jQuery 或诸如getElementById找不到元素之类的 DOM 方法?”的重复。我有一个应该触发一堆事件的表单,但没有一个函数被调用。我添加了一个按钮只是为了测试。

的HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset ="utf-8" />
    <title>Sign in</title>
    <link rel="stylesheet" type="text/css" href="main.css" />
    <link rel="stylesheet" type="text/css" href="passphrase.css" />
</head>
<body>
    <noscript>
        Javascript is disabled. Now redirecting.
    <meta HTTP-EQUIV="REFRESH" content="0; url=passnojs.html"> 
    </noscript>
    Welcome.
    <form method="post" action="prolevel2.php" id="loginForm">
        <!--code snipped-->
        <br /><br /><input type="button" value="big ugly button" id="testing" />
    </form>
    <script src="verify.js"></script><!--this should work because it's after the HTML-->
</body>
</html>

包含的外部 JavaScript

alert("begining")
document.getElementById('testing').addEventListener('onclick', display, false)
alert("here now")
function display()
{
    alert("now displaying")//doesn't work
}

显示“开始”和“现在这里”,但“现在不显示”。控制台中没有消息。我究竟做错了什么?

4

2 回答 2

2

尝试这个

document.getElementById('testing').addEventListener('click', function(){alert("now displaying")}, false);

或者

document.getElementById('testing').addEventListener('click',display, false);
于 2013-07-26T20:31:30.027 回答
0

正如其他人所提到的,您有语法错误。“onclick”应该是“点击”。对于默认事件,我更喜欢使用属性而不是 addEventListener,如果输入错误,它会引发正确的语法错误:

alert("begining")
document.getElementById('testing').onclick = display;
alert("here now")
function display()
{
    alert("now displaying");//doesn't work
}

http://jsfiddle.net/MaxPRafferty/N4qGB/

于 2013-07-26T21:17:46.307 回答