我正在尝试使用Javascript来提交表单的数据。这是html。
<form onsubmit="post();">
//input fields here
</form>
这是post()
函数的Javascript。
var post = function() {
alert('the form was submitted');
return false;
}
我的问题是Javascript运行但表单仍处理并刷新页面..
我把return false;
代码放在希望它会阻止表单刷新。
答案 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')
});