2017-09-15 168 views
2

我刚刚进入网络开发,并决定创建一个测试项目,看看事情如何工作。Javascript script does not work with html

我的HTML代码是:

<!DOCTYPE html> 
<html> 

<head> 
    <title> 
     title 
    </title> 
    <script type="text/javascript" src="jstest.js"></script> 
</head> 

<body> 
    <h1>heading1</h1> 
    <button onclick="runcode()">click me</button> 
</body> 



</html> 

和脚本是这样的:

function runcode(){ 
alert("clicked"); 
} 

我完全不知道为什么脚本不能正常工作。我已经把它之前权利,以确保按钮载入第一,但它仍然没有奏效

+1

你读过控制台输出了吗?我的猜测是你的jstest.js路径错误。它在一个js文件夹中? – Radmation

+0

如果你在函数外面移动alert(“clicked”)'',ist会提示“clicked”? – caramba

+1

是的,它为什么不起作用呢? – harambe

回答

3

的意见后,你可以改变你的代码与那些小位:

function runcode(event){ 
 
    event.preventDefault(); 
 
    alert("clicked"); 
 
}
<h1>heading1</h1> 
 
<button onclick="runcode(event)">click me</button>

MDN Webdocs about the button type他们说:

类型的按钮。可能的值为:提交:按钮 将表单数据提交给服务器。如果未指定 属性,或者该属性动态地将 更改为空值或无效值,则这是默认值。

这意味着,你点击按钮,然后提交的数据,并根据设置刷新页面。这就是为什么你没有看到alert。提交后发生警报。现在event.preventDefault()

方法告诉用户代理,如果事件得不到处理,其 默认动作不应被视为它通常会。

因此,你停止做默认的东西。因为现在你想让自己的功能起作用,首先必须停止默认行为以随意移动。在这种情况下提醒一些事情

+1

是这样做的,所以......发生了什么? – harambe

+0

@harambe更新了答案。 – caramba

+0

好吧......我没想到这是问题所在。谢谢(你的)信息!这是元素之间的共同问题吗? – harambe