2017-09-15 215 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