Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax将表单发送到服务器,序列化失败?_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript Ajax将表单发送到服务器,序列化失败?

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");

好像我无法序列化我的表单。我确实通过lol获得了第一个警报,但没有通过pdata获得第二个警报。有人知道出了什么问题吗?我正在尝试使用ajax以表单的形式发送数据。下面是脚本和html代码

<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">