javascript - 为什么javascript函数没有运行?

标签 javascript jquery ajax json html

我在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/

相关文章:

javascript - 关于在 $.get() 中获取响应的问题

javascript - ExtJS 和谷歌地图

javascript - jQuery .append() 等待渲染

asp.net - jQuery和WCF服务问题

javascript - 动态分配的 Ajax URL 字符串在 jquery-ui 自动完成上不显示任何内容

javascript - 如何将 Javascript 客户端连接到 Python-SocketIO 服务器?

javascript - 存储越来越多的数字以继续刷新?

javascript - 触发变量 true 或 false

ruby-on-rails - 基于 Ajax 的 Web 应用程序和身份验证 : session or token?

javascript - 如何在Javascript中遍历DOM以找到具有特定属性的最后一个祖先?