我想通过ajax调用将电子邮件地址插入到我的数据库中。 这就是问题所在。它不会在后台工作,而是刷新页面。
alert("yea");
未触及成功功能。
可能是什么问题?
$(document).ready(function() {
$("#header-subscribe").click(function(){
var str = $("#email").val();
if( validateEmail(str)) {
$.ajax({
url: 'php/signupForm.php',
type: 'GET',
data: 'email='+str,
success: function(data) {
//called when successful
alert("yea");
},
error: function(e) {
//called when there is an error
//console.log(e.message);
}
});
表格:
<form id="hero-subscribe" class="the-subscribe-form" >
<div class="input-group">
<input type="email" class="form-control" placeholder="Enter Your Email" id="email">
<span class="input-group-btn">
<button class="btn btn-subscribe" id="header-subscribe" type="submit">subscribe</button>
</span>
</div>
</form>
答案 0 :(得分:6)
Ajax调用与刷新无关。您有一个提交按钮,提交按钮的目的是提交表单。
最简单的解决方案是不使用提交按钮:
type="button"
但是,将事件处理程序绑定到按钮的click事件并不是一种好习惯。因此,而不是更改类型,将处理程序绑定到提交事件和prevent the default action(提交表单):
$("#hero-subscribe").submit(function(event) {
event.preventDefault();
// ...
});
答案 1 :(得分:4)
您需要阻止点击的默认操作...
$("#header-subscribe").click(function(event){
event.preventDefault();
答案 2 :(得分:2)
您应该绑定表单的submit
事件并使用event.preventDefault()
来阻止事件的默认操作。
$("#hero-subscribe").submit(function(event) {
event.preventDefault();
//Your code
});
答案 3 :(得分:1)
event.preventDefault()
表单操作,否则它会像普通表单一样提交。
$("#header-subscribe").click(function(event){
event.preventDefault(); //stop the default submit action