2016-02-29 96 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>