3

我正在从头开始编写我的第一个网站 - 我有一个表单和一个在提交表单时起作用的函数:

应用程序.js

$(document).ready(function() {
    $("#signupform").submit(function(e) {
        var name = document.getElementById("pname").value;
        var email = document.getElementById("email").value;
        var userArray = [];
        var user = {
            name: name,
            email: email
        };
        console.log(user.email, user.name);
        e.preventDefault;
    });
});

该消息被正确记录到控制台......但这只是一个昙花一现 - 它立即消失。另外......我在编写上述代码时遇到的任何错误也只在控制台中显示为短暂的光点。只是勉强够读。

这是我的 index.html 文件...如果它是相关的:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>it IT</title>
  <link rel="stylesheet" type="text/css" href="application.css" />
  <script src="jquery.js"></script> 
  <script src="application.js"></script>
  <!--[if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
</head>
<body>
    <h1>it IT</h1>
    <div id="signup">
        <form id="signupform">
            Name: <input type="text" name="pname" id="pname"><br>
            Email: <input type="text" name="email" id="email"><br>
            <input type="submit" value="sign up">
        </form>
    </div>
    <div id="signin"></div>
    <div id="content"></div>
</body>
</html>
4

3 回答 3

3

preventDefault 是一个方法,你需要:

e.preventDefault();

在您的问题代码中,表单已提交,因此控制台已刷新。

于 2013-06-01T15:34:50.690 回答
2

其实e.preventDefault是不正确的,你需要这样做:

$(document).ready(function () {
    $("#signupform").submit(function (e) {
        e.preventDefault();  // Missing () for preventDefault method
        var userArray = [];
        var user = {
            name: $('#pname').val(),  // also, you can get the values here only
            email: $('#email').val()  // no need to use extra variables for it
        };
        console.log(user.email, user.name);
    });
});
于 2013-06-01T15:40:36.410 回答
1

在您的浏览器控制台中转到设置(在右上角)并检查保留日志选项。这应该可以防止页面重新加载。

于 2020-05-11T02:13:41.783 回答