使用带有preventDefault()方法的jquery提交表单

时间:2016-12-09 18:30:53

标签: javascript jquery forms

我正在尝试使用Jquery提交表单。我的目标是使用.ajax将表单提交给服务器。提交后,表单的内容将转到页面而不重新加载页面(我想下面的e.preventDefault()将实现此目的)。代码如下。

但是当我点击提交时,表单似乎已重新加载。我的代码出了什么问题?

<!DOCTYPE html>
<html>
<head>

<script src="http:////code.jquery.com/jquery-1.10.2.js"></script>    
<script type='text/javascript'>

        $("#submitForm").submit(function(e){

            e.preventDefault();
        // some ajax code to submit the form

            var container = document.getElementById("div2");
            var node = document.createTextNode("put form contents here");           
            container.appendChild(node);          

        });

</script>

</head>

<body>
<h1>edit form here</h1>

<div id = "div1">
<form id = "submitForm">
    <input type = "text"/>
    <input type = "submit"  value = "submit"/>
</form>
</div>

<h1>show form contents here</h1>

<div id = "div2">

</div>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

在表单出现在文档中之前,脚本正在执行。

修正:

$(document).ready(function() {
        $("#submitForm").submit(function(e){

            e.preventDefault();
        // some ajax code to submit the form

            var container = document.getElementById("div2");
            var node = document.createTextNode("put form contents here");           
            container.appendChild(node);          

        });
});

这将在DOMContentLoaded事件触发时执行您的代码

答案 1 :(得分:0)

[已编辑]:此代码适合我。把它放在身体部分之后。

    $("#submitForm").submit(function(e){
      e.preventDefault();
      var container = document.getElementById("div2");
      var node = document.createTextNode("put form contents here");           
      container.appendChild(node);     
    });