停止表单提交的JavaScript代码
停止表单提交的一种方法是从JavaScript函数返回false 单击submit按钮时,将调用验证函数。我有一个表单验证案例。如果满足该条件,我将调用名为returnToPreviousPage()的函数强>停止表单提交的JavaScript代码,javascript,html,forms,Javascript,Html,Forms,停止表单提交的一种方法是从JavaScript函数返回false 单击submit按钮时,将调用验证函数。我有一个表单验证案例。如果满足该条件,我将调用名为returnToPreviousPage()的函数 function returnToPreviousPage() { window.history.back(); } 我正在使用JavaScript和 与其返回上一页,不如提交表单。如何中止此提交并返回到上一页?使用“防止默认值” Dojo工具包 dojo.connect(form
function returnToPreviousPage() {
window.history.back();
}
我正在使用JavaScript和
与其返回上一页,不如提交表单。如何中止此提交并返回到上一页?使用“防止默认值”
Dojo工具包
dojo.connect(form, "onsubmit", function(evt) {
evt.preventDefault();
window.history.back();
});
if (element.addEventListener) {
element.addEventListener("submit", function(evt) {
evt.preventDefault();
window.history.back();
}, true);
}
else {
element.attachEvent('onsubmit', function(evt){
evt.preventDefault();
window.history.back();
});
}
jQuery
$('#form').submit(function (evt) {
evt.preventDefault();
window.history.back();
});
香草JavaScript
dojo.connect(form, "onsubmit", function(evt) {
evt.preventDefault();
window.history.back();
});
if (element.addEventListener) {
element.addEventListener("submit", function(evt) {
evt.preventDefault();
window.history.back();
}, true);
}
else {
element.attachEvent('onsubmit', function(evt){
evt.preventDefault();
window.history.back();
});
}
只需使用一个简单的
按钮,而不是提交按钮。并调用JavaScript函数来处理表单提交:
<input type="button" name="submit" value="submit" onclick="submit_form();"/>
您也可以尝试window.history.forward(-1)代码>您可以使用函数的返回值来阻止表单提交
<form name="myForm" onsubmit="return validateMyForm();">
和功能类似
<script type="text/javascript">
function validateMyForm()
{
if(check if your conditions are not satisfying)
{
alert("validation failed false");
returnToPreviousPage();
return false;
}
alert("validations passed");
return true;
}
</script>
函数validateMyForm()
{
如果(检查您的条件是否不满足)
{
警报(“验证失败错误”);
returnToPreviousPage();
返回false;
}
警报(“通过验证”);
返回true;
}
如果是Chrome 27.0.1453.116 m,如果上述代码不起作用,请将字段设置为false以使其起作用
谢谢Sam分享信息
编辑:
感谢Vikram针对if validateMyForm()返回false的解决方法:
<form onsubmit="event.preventDefault(); validateMyForm();">
其中validateMyForm()是一个函数,如果验证失败,它将返回false。关键点是使用名称事件。到目前为止,我们无法将以下功能用于e.preventDefault()(在Chrome和Firefox中测试):
其中validateMyForm()是一个函数,如果验证失败,它将返回false
。关键点是使用名称事件
。例如,我们不能使用e.preventDefault()
假设您有一个类似于此的表单
<form action="membersDeleteAllData.html" method="post">
<button type="submit" id="btnLoad" onclick="confirmAction(event);">ERASE ALL DATA</button>
</form>
删除所有数据
下面是confirmation函数的javascript
<script type="text/javascript">
function confirmAction(e)
{
var confirmation = confirm("Are you sure about this ?") ;
if (!confirmation)
{
e.preventDefault() ;
returnToPreviousPage();
}
return confirmation ;
}
</script>
函数确认(e)
{
var确认=确认(“你确定吗?”);
如果(!确认)
{
e、 预防默认值();
returnToPreviousPage();
}
返回确认;
}
这一款适用于Firefox、Chrome、Internet Explorer(edge)、Safari等
如果不是这样,请让我知道您所有的答案都提供了一些有用的信息
最后,这对我很有用:(如果你没有选择至少一个复选框项目,它会发出警告并保持在同一页中)
我喜欢
名字:
姓氏:
转换为大写字母
转换为小写字母
不要转换
数学
物理
化学
提交
赫曼特和维克拉姆的答案在Chrome上对我来说并不完全有效。event.preventDefault();无论验证是否通过,脚本都阻止页面提交。相反,我必须移动事件;输入if语句,如下所示:
if(check if your conditions are not satisfying)
{
event.preventDefault();
alert("validation failed false");
returnToPreviousPage();
return false;
}
alert("validations passed");
return true;
}
感谢Hemant和Vikram让我走上正轨。例如,如果表单上有submit按钮,为了停止其传播,只需编写event.preventDefault();在单击“提交”按钮或“输入”按钮时调用的函数中。许多简单的方法:
<form name="foo" onsubmit="return false">
简单地做
<form>
<!-- Your Input Elements -->
</form>
我建议不要使用onsubmit
,而是在脚本中附加事件
var submit = document.getElementById("submitButtonId");
if (submit.addEventListener) {
submit.addEventListener("click", returnToPreviousPage);
} else {
submit.attachEvent("onclick", returnToPreviousPage);
}
然后使用preventDefault()
基于@Vikram Pudi-answer,我们也可以使用纯Javascript实现这一点
<form onsubmit="submitForm(event)">
<input type="text">
<input type="submit">
</form>
<script type="text/javascript">
function submitForm(event){
event.preventDefault();
}
</script>
函数提交表单(事件){
event.preventDefault();
}
R是否确认此函数正在调用??尝试发出警报(“测试”);是的,我确信;我喜欢这种方法,因为它允许我的用例回调。这防止了使用enter键提交表单。另外,新的HTML5属性,如required
也不起作用。只是猜测一下:在最新版本的Chrome中,它对我不起作用。任何返回false
的属性似乎都没有任何效果;Chrome仍然提交表单。例如,onsubmit=“return false;”
。但是,将事件处理程序的参数的returnValue
字段设置为false
对我来说确实有效。你好,Sam/Hemant,请提供代码示例,说明如何将事件处理程序的参数的returnValue字段设置为false。我认为,既然这是公认的答案,它可能会告诉我如何正确地执行此操作。我和JackDev都想知道如何让它正常工作。如果validateMyForm()
出现错误,则此操作将不起作用返回false
。所以这可能会失败。几个小时后,我找到了一个有效的解决方案,并将其发布在下面。我建议使用event.preventDefault()而不是return false。出于许多原因,这应该是最重要的答案:好答案。比所选的更好。很好,但是你会在哪里执行OP想要的验证?@acidjazz但是在阻止默认后如何访问表单数据?@Sahand@codeat30你可以访问事件target
。对我来说也很有效。这个准确的答案(好,不准确,因为你的缺少分号)是在8个月前提交的,而且有充分的理由投反对票。这在大多数情况下都有效。但并非所有浏览器都需要分号;我指出,这就是你的答案和一个更老的答案之间的不同之处。事实上你
var submit = document.getElementById("submitButtonId");
if (submit.addEventListener) {
submit.addEventListener("click", returnToPreviousPage);
} else {
submit.attachEvent("onclick", returnToPreviousPage);
}
function returnToPreviousPage (e) {
e = e || window.event;
// validation code
// if invalid
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
<form onsubmit="submitForm(event)">
<input type="text">
<input type="submit">
</form>
<script type="text/javascript">
function submitForm(event){
event.preventDefault();
}
</script>