Javascript Ajax将表单发送到服务器,序列化失败?
好像我无法序列化我的表单。我确实通过lol获得了第一个警报,但没有通过pdata获得第二个警报。有人知道出了什么问题吗?我正在尝试使用ajax以表单的形式发送数据。下面是脚本和html代码Javascript Ajax将表单发送到服务器,序列化失败?,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,好像我无法序列化我的表单。我确实通过lol获得了第一个警报,但没有通过pdata获得第二个警报。有人知道出了什么问题吗?我正在尝试使用ajax以表单的形式发送数据。下面是脚本和html代码 <html> <head> <script> function dologin(event) { event.preventDefault(); alert("lol");
<html>
<head>
<script>
function dologin(event) {
event.preventDefault();
alert("lol");
var pdata = $('#form').serialize();
alert(pdata);
$.ajax({
type: 'POST',
data: pdata,
url: 'LINK',
success: function(data) {
//console.log(data);
alert("YAY");
},
error: function() {
//console.log(data);
alert("NAY");
}
});
};
</script>
</head>
<body>
<h1>Logg inn</h1>
<form id="form" onsubmit="dologin()">
<div class="form-group">
<label for="email">Epost</label>
<input type="email" class="form-control" name="login" value="" placeholder="Epost">
</div>
<div class="form-group">
<label for="password">Passord</label>
<input type="password" class="form-control" name="password" value="" placeholder="Passord">
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="remember_me">
Husk meg
</label>
</div>
<button type="submit" class="btn btn-default">Logg inn</button>
</form>
<div class="login-help">
<p>Glemt passordet? <a href="index.html">Trykk her for å endre det</a>.</p>
</div>
</body>
</html>
函数dologin(事件){
event.preventDefault();
警报(“lol”);
var pdata=$('#form').serialize();
警报(pdata);
$.ajax({
键入:“POST”,
数据:pdata,
url:'链接',
成功:功能(数据){
//控制台日志(数据);
警惕(“耶”);
},
错误:函数(){
//控制台日志(数据);
警惕(“不”);
}
});
};
洛格酒店
埃博斯特
口令
去壳梅格
洛格酒店
格雷姆·帕索德特
代码的问题是,您正在访问事件参数,该参数没有传递给函数,因此它会触发错误,并将表单作为正常表单提交提交
如果您希望保留您的实现,您可以修改您的代码,如下所示:
function dologin() {
alert("lol");
var pdata = $('#form').serialize();
alert(pdata);
$.ajax({
type: 'POST',
data: pdata,
url: 'LINK',
success: function(data) {
//console.log(data);
alert("YAY");
},
error: function() {
//console.log(data);
alert("NAY");
}
});
return false;
};
并修改这一行
<form id="form" onsubmit="dologin()">
然后,表单标签应为:
<form id="form">
虽然您的实现看起来是正确的,但我相信您希望使用。这可能是一个愚蠢的问题,但您是否确实包含了jQuery?如果不是的话,它肯定不会通过第一次使用$Did。。。是否包含jQuery。。编辑:忍者!是的,我有,很抱歉它没有包含在样本中,我的错。因为你从未达到第二个警报,所以一定有错误。看看你的JavaScript控制台。。。上面说什么?
$(document).ready(function() {
$('#form').submit(function(e){
e.preventDefault();
$.ajax({
type: 'POST',
data: $(this).serialize(),
url: 'LINK',
success: function(data) {
//console.log(data);
alert("YAY");
},
error: function() {
//console.log(data);
alert("NAY");
}
});
});
});
<form id="form">