2016-02-29 162 views
-2

這是一些非常簡單的代碼,我不知道爲什麼它不起作用。我直接從另一個HTML文件中複製它,它在那裏工作,但不在這個文件上。提交時提交

這裏是窗體的HTML我有

<form> 
    Email: <input type="text" name="email"><br><br> 
    Password: <input type="password" name="password"><br><br> 
    <input type="submit" value="Submit"> 
</form> 

只是一個簡單的形式爲您的電子郵件地址和密碼。現在,我希望在提交時有一個提醒。這是我寫的jQuery,並從另一個HTML文件複製而來,我有它的魅力,但不在這裏。

<script type="text/javascript"> 
    $("form").submit(function(event){ 
     alert("String"); 
    }); 
</script> 

我真的很困惑,爲什麼它不起作用,所以任何洞察力都會很好。謝謝!

+1

檢查jquery.js和你的頁面加載正確 –

回答

1

包裝你的腳本的document.ready

內,直到該文件是不能被安全地操縱的頁「準備好了。」 jQuery爲您檢測到這種狀態。包含在$(document).ready()中的代碼只有在頁面文檔對象模型(DOM)準備好要執行JavaScript代碼時纔會運行。包含在$(window).load(function() { ... })中的代碼將在整個頁面(圖像或iframe)運行後運行,而不僅僅是DOM準備就緒。

$(document).ready(function(){ 
    $("form").submit(function(event){ 
     alert("String"); 
    }); 
}); 

DEMO

$(document).ready(function(){ 
 
    $("form").submit(function(event){ 
 
     alert("String"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    Email: <input type="text" name="email"><br><br> 
 
    Password: <input type="password" name="password"><br><br> 
 
    <input type="submit" value="Submit"> 
 
</form>

0

你應該嵌入代碼到$(文件)。就緒() 它所做的是,它等待DOM以正確加載,然後加載該功能,以便我們在生命週期中提供所有功能

爲此,你可以閱讀

W3schools Link for document.ready()

所以,你的代碼應該是

$document.ready(function(){ 
    $("form").submit(function(event){ 
     alert("String"); 
    }) 
}; 
0

之所以出現這種情況是當JavaScript代碼稱爲加載文檔之前。如果你使用jQuery,您可以將JavaScript的簡單添加到$(function(){ ... })

這裏,例如爲小提琴:https://jsfiddle.net/swaprks/joqrfeor/

或者,如果你只是想用它工作在你的其他文件的方式。將腳本標記粘貼到文件的末尾。即在</body>標籤

示例之前2:

<html> 
    <head></head> 
    <body> 
    <form> 
     Email: <input type="text" name="email"><br><br> 
     Password: <input type="password" name="password"><br><br> 
     <input type="submit" value="Submit"> 
    </form> 

    <script type="text/javascript"> 
    $("form").submit(function(event){ 
     alert("String"); 
    }); 
</script> 
</body> 
</html>