我在html文件中创建了javascript函数,并且在ajax成功中将控制台数据。但控制台没有显示,控制台也没有发现错误。
发生了什么?
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Home</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<div class="container">
<div class="div-form">
<h1>form</h1>
<fom action="#" id="ajax-form" method="post" accept-charset="utf-8">
<div class="input-group">
<label>Nama:</label>
<input class="form-control" type="text" name="name" placeholder="nama mu">
</div>
<div class="input-group">
<label>Email:</label>
<input class="form-control" type="email" name="email" placeholder="email mu">
</div>
<div class="input-group">
<button class="btn" name="submit" type="submit" value="SUBMIT" id="contact-submit">submit</button>
</div>
</form>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(e) {
$("#ajax-form").submit(function(event) {
/* Act on the event */
var jsondata = $("#ajax-form").serialize();
$.ajax({
url: 'proccess.php',
type: 'POST',
dataType: 'json',
data: jsondata,
})
.done(function() {
console.log("success" + data);
})
event.preventDefault();
});
});
</script>
</body>
</html>
最佳答案
您传回 submit()
函数的事件名称是 event
,但您尝试调用 preventDefault()
> 变量e
,它实际上是从 DOMReady 回调传回的事件。因此,提交事件永远不会被阻止。
您需要按如下方式更新(另请注意,我们需要将 data
变量传递回 done()
回调):
$("#ajax-form").submit(function(event) {
event.preventDefault();
/* Act on the event */
var jsondata = $("#ajax-form").serialize();
$.ajax({
url: 'proccess.php',
type: 'POST',
dataType: 'json',
data: jsondata,
})
.done(function( data ) {
console.log("success" + data);
});
});
关于javascript - 为什么javascript函数没有运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32197348/