停止HTML5表单发布,刷新或在onSubmit上打开一个新窗口

时间:2012-01-06 10:42:46

标签: javascript html5

我正在使用内置的客户端验证器的HTML5表单标签,但我不希望它提交一个东西,因为我刚刚运行了Javascript函数。

如何停止表单的Post方法。

干杯 - 凯乌斯

6 个答案:

答案 0 :(得分:5)

在函数调用后添加 return false ,如下所示:

<input .... onclick="function();return false;" />

或者您可以像这样从函数返回true / false:

<input .... onclick="return function()" />

答案 1 :(得分:1)

如果你使用jQuery,你可以这样做:

$('#your_form_id').submit(function(e){
   e.preventDefault(); 
  // do your staff
});

你也可以在没有框架的情况下做到这一点:

document.getElementById('your_form_id').addEventListener('submit' function() {
  // do your staff
  return false;
});

在“// do your staff”中,您可以编写ajax代码。

答案 2 :(得分:1)

我倾向于按原样保留我的函数,并在onsubmit处理程序中添加一个返回false,例如:

<form onsubmit="aFunction(); return false;">

答案 3 :(得分:0)

将onsubmit属性添加到表单标记:

<form onsubmit="return myfunction()">

确保为函数返回bool

function myfunction() {
  // do your validation
  if (validation.passes)  { // you will need to change this line !!!
     return true; // to submit
  } else {
     return false; // to prevent submit
  }
}

答案 4 :(得分:0)

在表单中添加一个onsubmit处理程序,例如

<form method="POST" onsubmit="return sendForm();">

然后定义函数并将false添加为返回值:

function sendForm() {
    //do your ajax request...
    return false;
}

答案 5 :(得分:0)

我已经尝试了所有解决方案,但仍然需要在ajax进程后重新加载页面:

<form id="form2" method="POST" onsubmit='sent(); return false;' >

function sent(){
    $.ajax({
        ...
    });
}