onsubmit刷新html表单

时间:2012-02-07 18:37:36

标签: javascript jquery html ajax onsubmit

我正在尝试使用Javascript来提交表单的数据。这是html。

<form onsubmit="post();">
//input fields here
</form>

这是post()函数的Javascript。

var post = function() {
alert('the form was submitted');
return false;
}

我的问题是Javascript运行但表单仍处理并刷新页面..

我把return false;代码放在希望它会阻止表单刷新。

5 个答案:

答案 0 :(得分:15)

你必须在onsubmit处理程序中的post()函数之后放置return false部分,如下所示:

<form onsubmit="post();return false;">
//input fields here
</form>

答案 1 :(得分:6)

让你的js远离DOM。

<form id="myform" action="somepage.php" method="post">
//input fields
</form>

JQuery的:

$('#myform').submit(function(event){
    alert('submitted');
    event.preventDefault();
});

答案 2 :(得分:2)

您需要从内联dom-0处理程序实际返回false。所以改变

onsubmit = "post();">

onsubmit = "return post();">

或者你可以给你的表单一个id并执行此操作:

<form id="form1" onsubmit = "post();">

然后从dom准备好的安全位置开始:

document.getElementById("form1").onsubmit = post;

答案 3 :(得分:2)

由于您添加了jQuery标记,因此这是执行此操作的最佳方式:
不引人注目的事件附件

$('form').submit(function(){
        alert('the form was submitted');
        return false;
    });

以你的方式应该是;

<form onsubmit="return post();">

答案 4 :(得分:1)

由于这篇文章是用jQuery标记的,我将提供以下解决方案:

$('form').submit(function(e){
  //prevent the form from actually submitting.
  e.preventDefault();
  //specify the url you want to post to.
  //optionally, you could grab the url using $(this).attr('href');
  var url = "http://mysite.com/sendPostVarsHere";
  //construct an object to send to the server
  //optionally, you could grab the input values of the form using $(this).serializeArray()
  var postvars = {};
  //call jquery post with callback function
  $.post(url, postvars, function(response){
    //do something with the response
    console.log(response);
  }, 'json')
});