2013-06-01 47 views
1

我从头开始编写我的第一个网站 - 我有一个形式,当表单提交动作的功能:萤火虫和铬控制台都有消失的console.log消息

的application.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> 

回答

3

的preventDefault是一个方法,你需要:

e.preventDefault(); 

在你的问题的代码中,形式submited所以控制台被刷新了。

+0

德尔...谢谢你啊! – ewizard

1

其实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); 
    }); 
}); 
+0

很酷...那么为什么防止默认去顶部? – ewizard

+0

只是为了防止仅在起始处的默认操作.. –

相关问题